Giter VIP home page Giter VIP logo

docker-nagios's Introduction

Docker Nagios

Docker image for Nagios, the Industry Standard In IT Infrastructure Monitoring. Nagios Core is running on Alpine Linux, using Apache HTTP as a web server and sSMTP as mail agent for email notifications.

The image is inspired by JasonRivers/Docker-Nagios image (Kudos to Jason!) but follows a different approach targetted to lightweight size and basic features.

Build Status: Nagios Build Docker pulls badge Docker stars badge License: MIT

Supported tags and respective Dockerfile links

For more information about the image versions you may refer to the CHANGELOG

Running

Run with the example configuration with the following:

docker run --name nagios -p 0.0.0.0:8080:80 manios/nagios:latest

alternatively you can use external Nagios configuration & log data with the following:

docker run --name nagios  \
  -v /path-to-nagios/etc/:/opt/nagios/etc/ \
  -v /path-to-nagios/var:/opt/nagios/var/ \
  -v /path-to-nagios/ssmtp.conf:/etc/ssmtp/ssmtp.conf \
  -v /path-to-custom-plugins:/opt/Custom-Nagios-Plugins \
  -p 0.0.0.0:8080:80 \
  manios/nagios:latest

Notes:

  1. The container populates with default configuration files if the configuration directories are empty.
  2. The path for the custom plugins will be /opt/Custom-Nagios-Plugins, you will need to reference this directory in your configuration scripts.
  3. In order to receive mail notifications, you have to configure SSMTP. You can find example configuration inside the container in the file /etc/ssmtp/ssmtp.conf or in the repository in overlay/etc/ssmtp/ssmtp.conf.

For best results your Nagios container should have access to both IPv4 & IPv6 networks.

Credentials

The default credentials for the web interface is nagiosadmin / nagios. However you can define your own credentials by overriding NAGIOSADMIN_USER and NAGIOSADMIN_PASS when you run the container. For example:

docker run --name nagios  \
  -e NAGIOSADMIN_USER="godmode" \
  -e NAGIOSADMIN_PASS="super-Duper-Secret!" \
  -p 0.0.0.0:8080:80 \
  manios/nagios:latest

Timezones

By default the Alpine container and Nagios both use UTC. In order to change the timezone we can pass the tz timezone database name as an environmental variable in docker run such as:

docker run -e "TZ=Europe/Athens" manios/nagios:latest

This will configure and use globally "Europe/Athens" in both container and Nagios process.

Flavours

This Docker image is designed with optimising resources usage in mind and is build for multiple hardware architectures. The following matrix can be used to determine if your hardware architecture is represented in a docker image tag:

Hardware Image OS/Arch
PC (32bit) linux/i386
PC (64bit) linux/amd64
Raspberry Pi 1 linux/arm/v6
Raspberry Pi 2 linux/arm/v7
Raspberry Pi 3 linux/arm/v7 or linux/arm64
Raspberry Pi 4 linux/arm/v7 or linux/arm64
Apple Silicon M1 linux/arm64

Test configuration

To check if your Nagios configuration is OK, you can run the following while your container is running. We assume that you use /opt/nagios/etc/nagios.cfg as your main configuration file.

docker exec -it mynagioscontainer bin/nagios -v etc/nagios.cfg

Troubleshooting

Nagios keeps restarting or shows a strange behaviour

In docker tag build-5, build-6, build-7 we have used Alpine 3.14 as our base image. This comes with security updates which may cause trouble as described in Release Notes forAlpine 3.14.0 > faccessat2.

In order to resolve this issue you should use docker tag build-8 or you can follow the workarounds provided here: #32 (comment).

My image does not run on Raspberry Pi

As already mentioned in #17, sometimes, because docker manifest related features are still experimental (after 2+ years of their introduction) it has happened when we tested in Raspberry Pi 1 (arm-v6) and Raspberry Pi 3 (arm-v7) that it does not download the arm image but the amd64.

Thus you can define explicitly which architecture to pull:

docker pull --platform=linux/arm/v6 manios/nagios
# or
docker pull --platform=linux/arm/v7 manios/nagios

and it works. Be advised that the --platform switch requires that you enable the Docker Experimental Features.

docker-nagios's People

Contributors

alexdyas avatar capruro avatar derco0n avatar manios avatar seancrites avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-nagios's Issues

/opt/nagios/{etc|var} permissions

Hi,

Just trying this out on a RPI3 - any hints the permissions of the mapped etc & var directories?

Even if I a+rwx them I go down a rabbit hole, example:

root@testipi:/docker# rm -rf /docker/nagios
root@testipi:/docker# mkdir -p /docker/nagios/etc /docker/nagios/var /docker/nagios/custom-plugins
root@testipi:/docker# touch /docker/nagios/ssmtp.conf
root@testipi:/docker# docker run --name nagios -v /docker/nagios/etc/:/opt/nagios/etc/ -v /docker/nagios/var/:/opt/nagios/var/ -v /docker/nagios/ssmtp.conf:/etc/ssmtp/ssmtp.conf -v /docker/nagios/custom-plugins:/opt/Custom-Nagios-Plugins  -p 0.0.0.0:8080:80  manios/nagios:latest
Started with empty ETC, copying example data in-place
Started with empty VAR, copying example data in-place
Adding password for user nagiosadmin
Started runsvdir, PID is 12
checking permissions for nagios
find: -exec requires an argument

Nagios Core 4.4.5
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2019-08-20
License: GPL

Website: https://www.nagios.org
Nagios 4.4.5 starting... (PID=18)
Local time is Tue Oct 08 14:02:58 UTC 2019
qh: Failed to init socket '/opt/nagios/var/rw/nagios.qh'. bind() failed: Permission denied
Error: Failed to initialize query handler. Aborting
checking permissions for nagios
find: -exec requires an argument

2019-10-08T14:02:58.963402+00:00 71a6b9688d70 :  [origin software="rsyslogd" swVersion="8.1904.0" x-pid="17" x-info="https://www.rsyslog.com"] start
Nagios Core 4.4.5
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2019-08-20
License: GPL

Website: https://www.nagios.org
Nagios 4.4.5 starting... (PID=20)
Local time is Tue Oct 08 14:02:58 UTC 2019
qh: Failed to init socket '/opt/nagios/var/rw/nagios.qh'. bind() failed: Permission denied
Error: Failed to initialize query handler. Aborting
2019-10-08T14:02:58.991884+00:00 71a6b9688d70 : qh: Failed to init socket '/opt/nagios/var/rw/nagios.qh'. bind() failed: Permission denied
2019-10-08T14:02:58.992032+00:00 71a6b9688d70 : Error: Failed to initialize query handler. Aborting
checking permissions for nagios
find: -exec requires an argument

If I start making the files it complains about world-writable I go down the above-mentioned rabbit hole, with errors such as:

2019-10-08T13:48:40.256656+00:00 ff20b77a2066 : Warning: Could not open object cache file '/opt/nagios/var/objects.cache' for writing!
2019-10-08T13:48:43.172372+00:00 ff20b77a2066 : Error: Unable to create temp file '/opt/nagios/var/nagios.tmpXXXXXX' for writing status data: Permission denied
2019-10-08T14:02:58.991884+00:00 71a6b9688d70 : qh: Failed to init socket '/opt/nagios/var/rw/nagios.qh'. bind() failed: Permission denied

Presumably the 'find -exec' is the issue but I couldn't find where it's called at a glance.

Thanks!

SSMTP send email error

2023-02-14T21:24:59.321187+08:00 ef2dd81c2d04 sSMTP[157]: /etc/ssmtp/ssmtp.conf not found 2023-02-14T21:24:59.596852+08:00 ef2dd81c2d04 sSMTP[157]: RCPT TO:<[email protected]> (550 5.7.1 relaying denied: <[email protected]> in "RCPT TO:<[email protected]>")

my ssmtp config

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
[email protected]

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
rewriteDomain=gmail.com

# The full hostname
hostname=Master

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
[email protected]
AuthPass=password
FromLineOverride=YES
UseTLS=YES
UseSTARTTLS=YES
AuthMethod=LOGIN

commands.cfg

define command {
    command_name notify-host-by-email
    command_line /usr/bin/printf "%b" "Subject: $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$\n\n***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/sbin/ssmtp $CONTACTEMAIL$
}
define command {
    command_name notify-service-by-email
    command_line /usr/bin/printf "%b" "Subject: $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$\n\n***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/sbin/ssmtp $CONTACTEMAIL$
}

I am sorry that my English is not very good, I can only express my question through translation

rsyslog runsv loop

Hi,

On a otherwise-perfectly-functioning container I thought I'll check what 'logs' say, and get:

# docker logs nagios | tail
rsyslogd: pidfile '/var/run/rsyslogd.pid' and pid 13 already exist.
If you want to run multiple instances of rsyslog, you need to specify
different pid files for them (-i option).
rsyslogd: run failed with error -3000 (see rsyslog.h or try https://www.rsyslog.com/e/3000 to learn what that number means)
rsyslogd: pidfile '/var/run/rsyslogd.pid' and pid 18 already exist.
If you want to run multiple instances of rsyslog, you need to specify
different pid files for them (-i option).
rsyslogd: run failed with error -3000 (see rsyslog.h or try https://www.rsyslog.com/e/3000 to learn what that number means)
rsyslogd: pidfile '/var/run/rsyslogd.pid' and pid 19 already exist.
If you want to run multiple instances of rsyslog, you need to specify
different pid files for them (-i option).
rsyslogd: run failed with error -3000 (see rsyslog.h or try https://www.rsyslog.com/e/3000 to learn what that number means)
rsyslogd: pidfile '/var/run/rsyslogd.pid' and pid 26 already exist.
If you want to run multiple instances of rsyslog, you need to specify
different pid files for them (-i option).
...<inifinite loop>...

Having a peek at the rsyslogd process:

# docker exec -it nagios sh
/opt/nagios # ps auxww | grep rsyslog
root        10  0.0  0.0    644     4 ?        Ss   10:20   0:00 runsv rsyslog
root        13  0.0  0.0   6312   664 ?        Sl   10:20   0:00 rsyslogd -n -f /etc/rsyslog.conf
root       139  0.0  0.0   1264     4 pts/0    S+   10:32   0:00 grep rsyslog
/opt/nagios # cat /var/run/rsyslogd.pid
13
/opt/nagios # sleep 30 ; cat /var/run/rsyslogd.pid
13
/opt/nagios # date
Thu Oct 10 10:33:06 UTC 2019
/opt/nagios # ps auxww | grep rsyslog
root        10  0.0  0.0    644     4 ?        Ss   10:20   0:00 runsv rsyslog
root        13  0.0  0.0   6312   536 ?        Sl   10:20   0:00 rsyslogd -n -f /etc/rsyslog.conf
root       155  0.0  0.0   1264     4 pts/0    S+   10:33   0:00 grep rsyslog
/opt/nagios # date
Thu Oct 10 10:34:01 UTC 2019
/opt/nagios # cat /var/run/rsyslogd.pid
13

So, we know that rsyslogd is indeed running, not crashing, and keeping its PID over time, the PID file itself is also correct and not changing, however something (I assume runsv) is still trying to spawn rsyslogd processes.

A restart of the container does not resolve the issue. I'm also unsure what the cause/trigger is for the issue as nothing changed in this regard in the past 2 commits you have done, so hoping someone else see this as well.

have you considered adding nagvis and nconfig?

I like your version that works with various architectures, like raspberry.
I want to move my nagios installation to a docker but I can't find one that has nagvis and nconfg(or similar)

thanks
PD: greetings from argentina

feature request: nagios 4.4.7

What happened?

new version released some days ago, is it possible to provide update

Image information

Image architecture

amd64

Relevant log output

No response

httpd init issue

Much like issue #8 seen today.

The issue shown and 'fix' below:

# docker logs nagios -f
...
httpd (pid 14) already running
httpd (pid 14) already running
httpd (pid 14) already running
httpd (pid 14) already running
^C
# docker exec -it nagios bash
bash-5.0# ps | grep http
bash-5.0#
bash-5.0# ps auxww | grep 14
nagios      14  1.6  0.1  33156  1440 ?        S    09:29   1:00 /opt/nagios/bin/nagios /opt/nagios/etc/nagios.cfg
bash-5.0#
bash-5.0# cat  /var/run/apache2/httpd.pid
14
bash-5.0# rm /var/run/apache2/httpd.pid
bash-5.0# ps auxw | grep 12405
root     12405  0.0  0.2  15456  2664 ?        Ss   10:29   0:00 /usr/sbin/httpd -D NO_DETACH
bash-5.0#

latest-armv7 removed

Hi,

I was just moving my Nagios container to another RPI and noticed:

$ docker pull manios/nagios:latest-armv7
Error response from daemon: manifest for manios/nagios:latest-armv7 not found: manifest unknown: manifest unknown

Any idea what gives? It still appears on the hub page

Setting TZ

Silly question but I've not seen this answered in the documentation...

How would I go about setting the Timezone from UTC? I've tried passing TZ and NAGIOS_TIMEZONE with no success.

The map icons and status images?

Hey Guys,

I noticed that these aren't working they are located in /opt/nagios/share/images/logo However i cannot figure out how to map them can someone help me with that please.

under the config file
They go in under the host definition.

icon_image linux.png
statusmap_image linux.gd2

Thank you for your help

/bin/gosu on rancher deployment

Reference Issue: #6

HI, @manios

I got some error with Rancher Deployment

/opt/nagios # uname -a
Linux nag4-556fdc7c5c-xgrlk 4.14.138-rancher #1 SMP Sat Aug 10 11:25:46 UTC 2019 x86_64 Linux
/opt/nagios # gosu nagios sh -c 'gosu root ping 127.0.0.1 -c 5'
error: failed switching to "root": operation not permitted
/opt/nagios # 

but, strange NOT with single docker instance run on RancherOS itself . . .

Fix check_ping version 2.2.1 Plugin Timeout

After a change introduced in nagios-plugins/nagios-plugins/issues/139 the ping command appears to have an unexpected behaviour.

This is explained in detail the issues nagios-plugins#419 and nagios-plugins#323.

We are going to revert the change and instead of using -W (capital W) in ping command, we will use -w (lower w). For more information please refer to man ping.

Another forum discussion about that: https://support.nagios.com/forum/viewtopic.php?f=7&t=52798

Legacy Map missing

Hi,

I'm new to github, so maybe this is not the best place to put my correction ...
I was missing the legacy map and found out that statusmap.cgi was missing. I appreciate your lightweight approach, but two packages more to the alpine installation help a lot. I inserted

gd gd-dev \

in line 37 of the Dockerfile (just before the net-snmp-tools) and that made statusmap.cgi compile and work (at least for me). I found the solution in https://support.nagios.com/forum/viewtopic.php?f=7&t=29361

Thanks for your work,
Peter

Not working on Pi 4

Hi @manios

thx for the docker first of all. I tried to install it on my Pi 4 and seems that some services are not starting.
The Website shows "Unable to get process status" and the log keeps repeating the section for initializing a process.

I checked as described the correct architecture which is armv7

Any idea what is causing this issue ?

Custom Plugin Error, Python Error

Python3 is missing in your Image File, if I add it, Nagios can't ping clients. Google said depends on the "Lang" set in Container.

Error after adding "apk add python3"

CRITICAL - Could not interpret output from ping command

Add the ability to override default timezone inside the container and Nagios

At the moment the Alpine container and Nagios both use UTC. In order to change the timezone we need to do some manual steps (described in #9) for every container.

A good feature could be to pass the timezone as an environmental variable in docker run such as:

docker run -e TZ="Europe/Athens" manios/nagios:latest

and configure it in both the container and Nagios.

problems running custom plugins (check_nrpe)

Hey

I decided to switch from a dedicated machine running nagios to a docker.
docker is running fine and I'm able to connect to the dashboard. All "standard" plugins (check_ping, ...) are also running fine.

I do have a few 'custom' plugins (check_nrpe, ...) that I used to run. However I keep getting the following error when running them via the nagios dashboard

(No output on stdout) stderr: execvp(/opt/nagios/libexec/custom/check_nrpe, ...) failed. errno is 2: No such file or directory

Running the command manually via ssh on the host returns correct results, so the plugin does work. It seems a 'translation' from the host to the docker is preventing some things from running correctly.

NOTE: this set-up used to work outside of docker, so I'm assuming it's related to authorizations or something like that, but even setting chmod 777 doesn't seem to work...

commands.cfg
define command{ command_name check_nrpe command_line $USER1$/custom/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }

resource.cfg
$USER1$=/usr/local/nagios/libexec

calling the plugin
define service{ use generic-service ; Name of service template to use host_name dockerpi service_description Current Users check_command check_nrpe!check_users }

plugin file stats
pi@dockerpi2:~/docker/containers/nagios/libexec/custom $ stat check_nrpe File: check_nrpe Size: 102112 Blocks: 200 IO Block: 4096 regular file Device: b302h/45826d Inode: 129480 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 100/systemd-timesync) Gid: ( 101/systemd-journal) Access: 2020-01-05 17:22:49.000000000 +0100 Modify: 2017-10-29 16:56:32.000000000 +0100 Change: 2020-01-05 17:37:03.604777318 +0100 Birth: -

Docker is set to bind
/home/pi/docker/containers/nagios/libexec/custom --> /opt/nagios/libexec/custom

[Bug]: check_ssl_cert needs "file" binary

What happened?

After adding the script check_ssl_cert, calling it fails with

SSL_CERT UNKNOWN sandbox.datactics.net: cannot find program: file

This is because the binary "file" is missing; rectified with
apk add file

Image information

  • docker-nagios2.conf: %!(EXTRA string=build)12
  • docker-nagios2.conf: %!(EXTRA string=gitCommit)c081de3f90deffab86205bd94523880548668685
  • docker-nagios2.conf: %!(EXTRA string=homepage)https://www.nagios.com/
  • docker-nagios2.conf: %!(EXTRA string=maintainer)Christos Manios [email protected]
  • docker-nagios2.conf: %!(EXTRA string=nagiosPluginsVersion)2.4.3
  • docker-nagios2.conf: %!(EXTRA string=nagiosVersion)4.4.10
  • docker-nagios2.conf: %!(EXTRA string=name)Nagios
  • docker-nagios2.conf: %!(EXTRA string=nrpeVersion)4.1.0

Image architecture

x86

Relevant log output

No response

arm64?

any chance of being able to add arm64 arch to the image build? This is exactly what I was looking for and then realized I am running Ubuntu 64 on my pi4s and it's not looking for the armv7 arch but arm64.

Thanks!

Container running but with error logs

Hi, i put this nagios installation to kubernetes cluster of RPis. The container starts successfully and i can get to the web gui. Landing page works, but clicking anything else leads to Internal Server Error. I have a feeling based on error that the image pulled is incorrect architecture.

Apache error log:
[Mon Nov 02 21:07:54.502666 2020] [cgi:error] [pid 28] [client 10.42.1.1:29865] AH01215: (8)Exec format error: exec of '/opt/nagios/sbin/status.cgi' failed: /opt/nagios/sbin/status.cgi, referer: http://192.168.1.80:9999/side.php [Mon Nov 02 21:07:54.504362 2020] [cgi:error] [pid 28] [client 10.42.1.1:29865] End of script output before headers: status.cgi, referer: http://192.168.1.80:9999/side.php

And the container log has this block repeating:

checking permissions for nagios /opt/nagios/bin/nagios: line 1:ELF: not found /opt/nagios/bin/nagios: line 2: @8: not found /opt/nagios/bin/nagios: line 3: @@@@0pppP%P%000โ–’โ–’โ–’โ–’โ–’: not found /opt/nagios/bin/nagios: line 4: โ–’โ–’: not found /opt/nagios/bin/nagios: line 5: โ–’โ–’: not found /opt/nagios/bin/nagios: line 6: โ–’.โ–’โ–’: not found /opt/nagios/bin/nagios: line 7: โ–’โ–’: not found /opt/nagios/bin/nagios: line 8: โ–’โ–’: not found /opt/nagios/bin/nagios: line 9: โ–’Pโ–’tdโ–’โ–’: not found /opt/nagios/bin/nagios: line 10: โ–’โ–’: not found /opt/nagios/bin/nagios: line 11: โ–’โ–’: not found /opt/nagios/bin/nagios: line 12: โ–’: not found /opt/nagios/bin/nagios: line 13: หˆF: not found /opt/nagios/bin/nagios: line 14: syntax error: unexpected "("

/bin/gosu x86-64 only

Hi,

Another quick one that is ARM specific - I noticed my localhost ping fails:

Status Information: /bin/gosu root /bin/ping -n -W 10 -c 5 127.0.0.1 CRITICAL - Could not interpret output from ping command

Turns out /bin/gosu is x86-64 only:

/opt/nagios # /bin/gosu
/bin/gosu: line 3: syntax error: unexpected end of file (expecting ")")
/opt/nagios # file /bin/gosu
/bin/gosu: setuid, setgid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=XOzwEH6V6iJDf36Y0aCb/KPezFZThkGBKlprEwfIr/eA9pM6F66-eLmHeF5tEI/E7RX6OhdNfEiOxNqCLlW, stripped
/opt/nagios # uname -a
Linux 5ef9ed4a4110 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l Linux
/opt/nagios #

If I replace it with the gosu 1.11 armhf release binary (for a RPI3, and 'chmod +s' of course) we get going OK:

/etc # /bin/gosu nagios sh
/etc $ /bin/gosu root /bin/ping -n -W 10 -c 5 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.335 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.294 ms
64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.282 ms
^C
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.282/0.303/0.335 ms

net-snmp-tools Not Installed -- check_snmp Not Working

The Alpine package net-snmp-tools provides the following utilities that Nagios needs for its check_snmp command to function:

  • snmpget
  • snmpwalk

Without them, checks with SNMP commands error out with "External command error with no output (return code: 3)". The solution should be as simple as adding the package to the Dockerfile.

Some plugins fail to compile in Linux Alpine Docker image

See more in: nagiosbuild.log

Try to use the following Alpine packages as dependencies in order to build Nagios plugins:

apk add libldap \
openldap-dev \
freeradius-client-dev \
mysql \
mysql-client \
perl-dbd-mysql \
postgresql-libs \
postgresql-client \
postgresql-dev \
perl-test-postgresql \
libdbi-dev \
libssh2-dev \
libsmbclient \
net-snmp-dev \
fping \
net-snmp-perl

Mail sending fail - AARCH64

What happened?

Hi there,

I want to move my existing nagios setup to cloud instance, Ampere ARM, my new arhitecture is:

docker exec -it nagios /bin/sh -c 'apk --print-arch'
aarch64

My logs :
wproc: stderr line 01: /bin/sh: /bin/mail: not found

In the console of the container:

bash-5.0# which mail
bash-5.0# /usr/bin/mail
bash: /usr/bin/mail: No such file or directory
bash-5.0# /bin/mail
bash: /bin/mail: No such file or directory
bash-5.0#

So it looks like there is no mail :(

Thank you in advance!

Image information

Image architecture

arm64

Relevant log output

wproc: NOTIFY job 115 from worker Core Worker 23 is a non-check helper but exited with return code 1272022-01-07T12:56:18.148470+00:00 c009e4ec9d5b : wproc: NOTIFY job 115 from worker Core Worker 23 is a non-check helper but exited with return code 127


wproc:   host=xxxxxx; service=SMTP; contact=xxxxx

wproc:   early_timeout=0; exited_ok=1; wait_status=32512; error_code=0;

wproc:   stderr line 01: /bin/sh: /bin/mail: not found

2022-01-07T12:56:18.148562+00:00 c009e4ec9d5b : wproc:   host=XXXXXXX; service=SMTP; contact=xxxxx

2022-01-07T12:56:18.148585+00:00 c009e4ec9d5b : wproc:   early_timeout=0; exited_ok=1; wait_status=32512; error_code=0;

2022-01-07T12:56:18.148598+00:00 c009e4ec9d5b : wproc:   stderr line 01: /bin/sh: /bin/mail: not found

2022-01-07T13:09:37.011693+00:00 c009e4ec9d5b : Auto-save of retention data completed successfully.

[Bug]: check_dns does not work because nslookup is provided by BusyBox

What happened?

When using manios/nagios:latest and then using check_dns it always results in this error:

DNS CRITICAL - '/usr/bin/nslookup -sil' msg parsing exited with no address 

When trying to run nslookup -sil manually this is the result:

BusyBox v1.31.1 () multi-call binary.

Usage: nslookup [-type=QUERY_TYPE] [-debug] HOST [DNS_SERVER]

Query DNS about HOST

QUERY_TYPE: soa,ns,a,aaaa,cname,mx,txt,ptr,any

Running apk add bind-tools fixes the error. Afterward running nslookup -sil returns this result:

nslookup -sil wiki.linuxquestions.org
Server:		127.0.0.11
Address:	127.0.0.11#53

Non-authoritative answer:
Name:	wiki.linuxquestions.org
Address: 104.237.137.190

And check_dns works correctly afterward, too. So I would suggest to incude the "bind-tools" package to ensure that check_dns can be used.

Thank you very much for creating and maintaining this image! :-)

Image information

Image architecture

x86

Relevant log output

No response

check_dns don work without bind-tools

the plugin check_dns don't work without install the package bind-tools

bash-5.0# ./check_dns -H www.google.com
DNS CRITICAL - '/usr/bin/nslookup -sil' msg parsing exited with no address
bash-5.0# 

after install bind-tools

bash-5.0# apk add bind-tools
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/15) Installing fstrm (0.6.0-r1)
(2/15) Installing krb5-conf (1.0-r2)
(3/15) Installing libcom_err (1.45.6-r0)
(4/15) Installing keyutils-libs (1.6.1-r1)
(5/15) Installing libverto (0.3.1-r1)
(6/15) Installing krb5-libs (1.18.4-r0)
(7/15) Installing json-c (0.14-r1)
(8/15) Installing libgcc (9.3.0-r2)
(9/15) Installing libstdc++ (9.3.0-r2)
(10/15) Installing libprotobuf (3.12.2-r0)
(11/15) Installing libprotoc (3.12.2-r0)
(12/15) Installing protobuf-c (1.3.3-r1)
(13/15) Installing libuv (1.38.1-r0)
(14/15) Installing bind-libs (9.16.20-r1)
(15/15) Installing bind-tools (9.16.20-r1)
Executing busybox-1.31.1-r20.trigger
OK: 170 MiB in 165 packages
bash-5.0# ./check_dns -H www.google.com
DNS OK: 0.034 seconds response time. www.google.com returns 142.250.184.4|time=0.033852s;;;0.000000
bash-5.0#

Ping does not run with permission denied error

ping command does not run as it requires root privileges in Alpine. We run Nagios with a specific user nagios. To overcome this burden we are going to run ping using gosu utility.

More references:

  1. https://askubuntu.com/questions/453377/how-to-enable-event-mpm-apache-2-4-on-ubuntu-14-04-with-thread-safe-php
  2. gliderlabs/docker-alpine#173
  3. smebberson/docker-alpine#65
  4. https://serverfault.com/questions/238962/how-do-i-clear-the-s-permission-on-a-directory-in-linux
  5. https://www.linuxnix.com/suid-set-suid-linuxunix/
  6. https://sourceforge.net/p/nagios/mailman/message/19832020/

Furthermore when we run :

/opt/nagios $ /bin/gosu root /bin/ping localhost
error: failed switching to "root": operation not permitted

inside an ARMv6 or ARMv6 Docker container which runs with QEmu, then this is due to the fact
qemu-user-static/#17 and we need to run

docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes

so it works.

ssh not installed - unable to run check_by_ssh (returned status 3)

Hi

The check_by_ssh plugin only started working after I manually re-added the openssh package

/opt/nagios # apk update

fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz

fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz

v3.11.11-26-gaa55c5a654 [http://dl-cdn.alpinelinux.org/alpine/v3.11/main]

v3.11.11-24-g127ddb5cee [http://dl-cdn.alpinelinux.org/alpine/v3.11/community]

OK: 11274 distinct packages available

/opt/nagios # apk add openssh

(1/6) Installing openssh-keygen (8.1_p1-r0)

(2/6) Installing openssh-client (8.1_p1-r0)

(3/6) Installing openssh-sftp-server (8.1_p1-r0)

(4/6) Installing openssh-server-common (8.1_p1-r0)

(5/6) Installing openssh-server (8.1_p1-r0)

(6/6) Installing openssh (8.1_p1-r0)

I see in the dockerfile you are adding the openssh-client, but it doesn't seem to be enough (as ssh wasn't found)

Build using Github Actions

Up to that point, we tried to use both Dockerhub automated builds and Travis CI in order to build our image. However, we encountered the following problems:

  • Our image is being built for multiple architectures (x86, amd64, arm/v6, arm/v7 ) using QEMU and the total build time can be over 60 minutes. Dockerhub and Travis CI builds throw a timeout on 60 minutes and the build stops.
  • Dockerhub does not support experimental features at all, such as docker manifest and docker buildx, (at least until the time of writing this issue)
  • Dockerhub does have a terrible community support. Check the issues in docker/hub-feedback Github project.

Due to the aforementioned issues, we chose to use Github Actions in order to build our multi-platform image. Github Actions provide us with:

[Bug]: logrotate not working

What happened?

1644534000] Error: Unable to rename file '/var/log/nagios/nagios.log' to '/var/log/nagios/archive/nagios-02-11-2022-00.log': Permission denied

Image information

Image architecture

amd64

Relevant log output

No response

Startup-script

Hi,

As reminded in Issue#9 earlier, my (very newbie) workflow to test any new container is pretty much:

# docker pull manios/nagios && docker stop nagios && docker rm nagios && docker-compose -f nagios.yaml up -d && docker tag <imageid> date +%s# to keep tabs

Which leads to the question - where is an appropriate point I can put a script that will be run on start so it can do my usual stuff (set TZ, add some packages and nagios plugins, etc etc), ie. a /etc/rc.local or /etc/cont-init.d/ equivalent?

Thanks!

NagiosGraph Graph Text is Squares

Nginx, nagiosgraph and nagiosgraph cgi log don't show any errors.

Anyone have any ideas where I can look to resolve this issue? I've been chasing it for a few days now.

image

Error: Could not open command file '/opt/nagios/var/rw/nagios.cmd' for update!

Hi,
I'm trying this nagios container, when I want to force a check through web interface, I have this error :

Error: Could not open command file '/opt/nagios/var/rw/nagios.cmd' for update!
The permissions on the external command file and/or directory may be incorrect. Read the FAQs on how to setup proper permissions.

An error occurred while attempting to commit your command for processing.

I read the differents issues, I have seen this one but, for me with the build manios/nagios:latest (nagios version 4.4.6), I have the error.

I don't have nagcmd group inside the container, I have nagios user and nagios group like the dockerfile.

The permissions are like this :

/opt/nagios # ls -lt var/
total 2752
-rw-rw-r--    1 nagios   nagios      151476 Jan  5 21:26 status.dat
-rw-r--r--    1 nagios   nagios     2385521 Jan  5 21:07 nagios.log
-rw-------    1 nagios   nagios      151087 Jan  5 21:07 retention.dat
-rw-r--r--    1 nagios   nagios      108547 Jan  5 20:07 objects.cache
drwxr-xr-x    2 nagios   nagios        4096 Jan  5 20:07 rw
drwxr-xr-x    2 nagios   nagios        4096 Jan  5 00:00 archives
drwxr-xr-x    3 nagios   nagios        4096 Dec 30 22:47 spool
/opt/nagios # ls -lt var/rw/
total 0
srw-rw----    1 nagios   nagios           0 Jan  5 20:07 nagios.qh
prw-r-----    1 nagios   nagios           0 Dec 30 22:47 nagios.cmd

Is it a bug I can fix with some command or it should be fixed in a future release ?

Thank you for your help.

Tactical Overview >> Internal Server Error 500

Ive made a fresh deploymen, with no custom cfg files, just executed:

docker pull manios/nagios
docker run --name nagios -p 0.0.0.0:8080:80 manios/nagios:latest

And browse to http://xxxxx:8080/nagios and home page works fine, but when I click on every link that uses path /nagios/cgi-bin/ for instance http://xxxxx:8080/nagios/cgi-bin/tac.cgi
shows me :

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Error log File shows:
[root@xxxxx ~]# podman exec -it nagios cat /var/log/apache2/error.log
[Thu Apr 15 18:44:22.220000 2021] [mpm_prefork:notice] [pid 18] AH00163: Apache/2.4.46 (Unix) PHP/7.4.15 configured -- resuming normal operations
[Thu Apr 15 18:44:22.220026 2021] [core:notice] [pid 18] AH00094: Command line: '/usr/sbin/httpd -D NO_DETACH'
[Thu Apr 15 18:44:29.194909 2021] [cgi:error] [pid 30] [client 10.3.5.101:50166] End of script output before headers: tac.cgi, referer: http://xxxxx:8080/side.php

I think there is a misscoonfigurarion in image... Ive tried docker.io/jasonrivers/nagios image and it work fine... no problem at all....

[Bug]: Tactical Overview Internal Server Error 500 due to getcgi.c bug

What happened?

The issue was initially spotted in #24 and came back as a regression after we updated from alpine:3.11 to alpine:3.14.

The following Nagios menu entries throw an HTTP 500 when clicked:

  • Tactical Overview
  • Problems > Network Outages
  • Availability
  • Alerts > Summary
  • Event Log
  • Configuration

The Apache server logs show the issue:

$ docker exec -it nagios /bin/sh
/opt/nagios # tail -f -n 10 /var/log/apache2/error.log 
[Tue Aug 24 05:16:57.426585 2021] [core:notice] [pid 21] AH00094: Command line: '/usr/sbin/httpd -D NO_DETACH'
[Tue Aug 24 05:17:11.225714 2021] [php7:notice] [pid 37] [client 172.18.0.1:6824] PHP Notice:  Trying to access array offset on value of type bool in /opt/nagios/share/includes/utils.inc.php on line 217, referer: http://localhost:8080/
[Tue Aug 24 05:17:11.226455 2021] [php7:notice] [pid 37] [client 172.18.0.1:6824] PHP Notice:  Trying to access array offset on value of type bool in /opt/nagios/share/includes/utils.inc.php on line 154, referer: http://localhost:8080/
[Tue Aug 24 05:17:11.231959 2021] [php7:notice] [pid 39] [client 172.18.0.1:6826] PHP Notice:  Trying to access array offset on value of type bool in /opt/nagios/share/includes/utils.inc.php on line 217, referer: http://localhost:8080/
[Tue Aug 24 05:17:16.613772 2021] [cgi:error] [pid 37] [client 172.18.0.1:6824] End of script output before headers: avail.cgi, referer: http://localhost:8080/side.php
[Tue Aug 24 05:18:12.479262 2021] [cgi:error] [pid 56] [client 172.18.0.1:7760] End of script output before headers: tac.cgi, referer: http://localhost:8080/side.php
[Tue Aug 24 05:18:13.524600 2021] [php7:notice] [pid 57] [client 172.18.0.1:7790] PHP Notice:  Trying to access array offset on value of type bool in /opt/nagios/share/includes/utils.inc.php on line 217, referer: http://localhost:8080/side.php
[Tue Aug 24 05:18:13.525987 2021] [php7:notice] [pid 57] [client 172.18.0.1:7790] PHP Notice:  Trying to access array offset on value of type bool in /opt/nagios/share/includes/utils.inc.php on line 154, referer: http://localhost:8080/side.php
[Tue Aug 24 05:18:17.029997 2021] [cgi:error] [pid 57] [client 172.18.0.1:7790] End of script output before headers: tac.cgi, referer: http://localhost:8080/side.php
[Tue Aug 24 05:19:08.428062 2021] [cgi:error] [pid 72] [client 172.18.0.1:8578] End of script output before headers: avail.cgi, referer: http://localhost:8080/side.php

After sarching in Alpine official repository, I found a good way of tackling it in alpine/aports #12516.

Thanks @bobbintb for spotting it and helping with the debugging!

Image information

Image architecture

amd64, arm/v6

Relevant log output

The Nagios container shows no error. Please check the logs of Apache server.

External Command File not writable

Hi,

On a default install, any external command file operations (reschedule a check time for a service as an example) fails with something like:

Error: Could not open command file '/opt/nagios/var/rw/nagios.cmd' for update!
The permissions on the external command file and/or directory may be incorrect. Read the FAQs on how to setup proper permissions.
An error occurred while attempting to commit your command for processing.

I noticed that Nagios is ./configure'd with a nagcmd groupid already, so I fixed it with:

# chown nagios:nagcmd /opt/nagios/var/rw
# chown nagios:nagcmd /opt/nagios/var/rw/nagios.cmd
# addgroup apache nagcmd
# addgroup apache nagios

Arguably only nagios or nagcmd is necessary (not both) but the general advice on some searches tend to include both, YMMV.

[Bug]: Last Check Timestamp is wrong

What happened?

In the host check and the PING check service, the last check and next check time stamp is incorrect. I looked at /opt/nagios/var/retention.dat, the last_state_change, last_time_up timestamp is way off to 1995546224. The TZ has been set correctly and the time in the container is correct.

1

Image information

Image architecture

arm/v7

Relevant log output

Removing Apache HTTPD PID file before starting it ...OK
Removing rsyslogd PID file before starting it ...OK
Timezone setting exists in /opt/nagios/etc/nagios.cfg. Modifying it ... OK
No timezone setting in /etc/apache2/conf.d/nagios.conf ... OK
Started runsvdir, PID is 21
checking permissions for nagios

2021-10-06T23:37:15.551204+08:00 9ab62bdc2a1a : [origin software="rsyslogd" swVersion="8.2012.0" x-pid="26" x-info="https://www.rsyslog.com"] start
2021-10-06T23:37:15.582611+08:00 9ab62bdc2a1a : Nagios 4.4.6 starting... (PID=27)
2021-10-06T23:37:15.582808+08:00 9ab62bdc2a1a : Local time is Wed Oct 06 23:37:15 HKT 2021
2021-10-06T23:37:15.582898+08:00 9ab62bdc2a1a : LOG VERSION: 2.0
2021-10-06T23:37:15.583515+08:00 9ab62bdc2a1a : qh: Socket '/opt/nagios/var/rw/nagios.qh' successfully initialized
2021-10-06T23:37:15.583650+08:00 9ab62bdc2a1a : qh: core query handler registered
2021-10-06T23:37:15.583744+08:00 9ab62bdc2a1a : qh: echo service query handler registered
2021-10-06T23:37:15.584172+08:00 9ab62bdc2a1a : qh: help for the query handler registered
2021-10-06T23:37:15.584318+08:00 9ab62bdc2a1a : wproc: Successfully registered manager as @wproc with query handler
2021-10-06T23:37:15.626453+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 32;pid=32
2021-10-06T23:37:15.635637+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 34;pid=34
2021-10-06T23:37:15.639521+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 31;pid=31
2021-10-06T23:37:15.643075+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 35;pid=35
2021-10-06T23:37:15.662002+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 36;pid=36
2021-10-06T23:37:15.665898+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 33;pid=33
2021-10-06T23:37:15.709485+08:00 9ab62bdc2a1a : Successfully launched command file worker with pid 37
Shutting Down
2021-10-06T23:56:28.365724+08:00 9ab62bdc2a1a : Caught SIGTERM, shutting down...
Nagios Core 4.4.6
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2020-04-28
License: GPL

Website: https://www.nagios.org
Nagios 4.4.6 starting... (PID=27)
Local time is Wed Oct 06 23:37:15 HKT 2021
wproc: Successfully registered manager as @wproc with query handler
wproc: Registry request: name=Core Worker 32;pid=32
wproc: Registry request: name=Core Worker 34;pid=34
wproc: Registry request: name=Core Worker 31;pid=31
wproc: Registry request: name=Core Worker 35;pid=35
wproc: Registry request: name=Core Worker 36;pid=36
wproc: Registry request: name=Core Worker 33;pid=33
Successfully launched command file worker with pid 37
Caught SIGTERM, shutting down...
Successfully shutdown... (PID=27)
ok: down: apache: 0s, normally up
ok: down: nagios: 0s, normally up
ok: down: rsyslog: 0s, normally up
Removing Apache HTTPD PID file before starting it ...OK
Removing rsyslogd PID file before starting it ...OK
Timezone setting exists in /opt/nagios/etc/nagios.cfg. Modifying it ... OK
Timezone setting exists in /etc/apache2/conf.d/nagios.conf. Modifying it ... OK
Started runsvdir, PID is 19
checking permissions for nagios
2021-10-06T23:56:31.034859+08:00 9ab62bdc2a1a : [origin software="rsyslogd" swVersion="8.2012.0" x-pid="25" x-info="https://www.rsyslog.com"] start

2021-10-06T23:56:31.049761+08:00 9ab62bdc2a1a : Nagios 4.4.6 starting... (PID=24)
2021-10-06T23:56:31.050046+08:00 9ab62bdc2a1a : Local time is Wed Oct 06 23:56:31 HKT 2021
2021-10-06T23:56:31.050206+08:00 9ab62bdc2a1a : LOG VERSION: 2.0
2021-10-06T23:56:31.050542+08:00 9ab62bdc2a1a : qh: Socket '/opt/nagios/var/rw/nagios.qh' successfully initialized
2021-10-06T23:56:31.050690+08:00 9ab62bdc2a1a : qh: core query handler registered
2021-10-06T23:56:31.050819+08:00 9ab62bdc2a1a : qh: echo service query handler registered
2021-10-06T23:56:31.050948+08:00 9ab62bdc2a1a : qh: help for the query handler registered
2021-10-06T23:56:31.051097+08:00 9ab62bdc2a1a : wproc: Successfully registered manager as @wproc with query handler
2021-10-06T23:56:31.061904+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 29;pid=29
2021-10-06T23:56:31.066124+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 30;pid=30
2021-10-06T23:56:31.071148+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 31;pid=31
2021-10-06T23:56:31.075008+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 32;pid=32
2021-10-06T23:56:31.083729+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 33;pid=33
2021-10-06T23:56:31.088213+08:00 9ab62bdc2a1a : wproc: Registry request: name=Core Worker 34;pid=34
2021-10-06T23:56:31.130006+08:00 9ab62bdc2a1a : Successfully launched command file worker with pid 35
2021-10-07T00:00:00.007046+08:00 9ab62bdc2a1a : LOG ROTATION: DAILY
2021-10-07T00:00:00.007208+08:00 9ab62bdc2a1a : LOG VERSION: 2.0
2021-10-07T00:00:00.007565+08:00 9ab62bdc2a1a : CURRENT HOST STATE: Ambiclimate-Dining;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 18.60 ms
2021-10-07T00:00:00.007666+08:00 9ab62bdc2a1a : CURRENT HOST STATE: Ambiclimate-Francis;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 11.90 ms
2021-10-07T00:00:00.007746+08:00 9ab62bdc2a1a : CURRENT HOST STATE: Ambiclimate-Michael;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 40.63 ms
2021-10-07T00:00:00.007829+08:00 9ab62bdc2a1a : CURRENT HOST STATE: Google-WiFi;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 1.15 ms
2021-10-07T00:00:00.007909+08:00 9ab62bdc2a1a : CURRENT HOST STATE: Philips-Hue-Bridge;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.87 ms
2021-10-07T00:00:00.008129+08:00 9ab62bdc2a1a : CURRENT HOST STATE: USI-Laptop;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 7.18 ms
2021-10-07T00:00:00.008217+08:00 9ab62bdc2a1a : CURRENT HOST STATE: ftbt-rasppi;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 1.18 ms
2021-10-07T00:00:00.008299+08:00 9ab62bdc2a1a : CURRENT HOST STATE: michael-pi301;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.28 ms
2021-10-07T00:00:00.008392+08:00 9ab62bdc2a1a : CURRENT HOST STATE: michael-pi401;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.72 ms
2021-10-07T00:00:00.008603+08:00 9ab62bdc2a1a : CURRENT HOST STATE: michael-win10;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.81 ms
2021-10-07T00:00:00.008695+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: Ambiclimate-Dining;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 14.43 ms
2021-10-07T00:00:00.008793+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: Ambiclimate-Francis;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 9.06 ms
2021-10-07T00:00:00.008879+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: Ambiclimate-Michael;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 56.87 ms
2021-10-07T00:00:00.009108+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: Google-WiFi;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 1.04 ms
2021-10-07T00:00:00.009204+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: Philips-Hue-Bridge;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 0.89 ms
2021-10-07T00:00:00.009404+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: USI-Laptop;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 12.90 ms
2021-10-07T00:00:00.009486+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: ftbt-rasppi;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 1.52 ms
2021-10-07T00:00:00.009566+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: michael-pi301;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 0.33 ms
2021-10-07T00:00:00.009768+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: michael-pi401;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 0.76 ms
2021-10-07T00:00:00.009859+08:00 9ab62bdc2a1a : CURRENT SERVICE STATE: michael-win10;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 0.76 ms

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.