Nagios Monitoring von FHEM Webinstanzen

02.10.2016
Dieser Inhalt ist bereits etwas älter.
This content is already a bit old.
Bild

In diesem Artikel wird beschrieben, wie man eine oder mehrere Webinstanzen des FHEM-Servers (Freundliche Hausautomatisierung und Energie-Messung) überwacht.

Normalerweise ist die Überwachung eines Webservers als Dienst unter Nagios relativ einfach mit

define service{
use generic-service
service_description Webserver
name FHEM_Web
host_name <Hostname des FHEM-Servers>
check_command check_http
}

zu realisieren.

Natürlich muss hierzu auch noch der korrekte Port geprüft werden. Dieser lautet standardmäßig bei FHEM 8083:

define service{
use generic-service
service_description Webserver
name FHEM_Web
host_name <Hostname des FHEM-Servers>
check_command check_http!-p 8083
}

Doch leider habe ich dann immer einen "Socket Timeout" nach 10 Sekunden durch Nagios bekommen. Im Browser wurde die Webseite allerdings jederzeit korrekt angezeigt.

Der Grund: FHEM lauscht auf dem Port 8083. Sobald ein Browser eine HTTP-Anfrage an diesen Port schickt, wird der Browser auf eine andere Seite umgeleitet. Die Seite http://<Hostname des FHEM-Servers>:8083/index.html gibt es also nicht.

Nagios versucht standardmäßig, die Startseite auf diesem Port über eine HTTP-Anfrage abzurufen und herunterzuladen und ignoriert die Weiterleitung, weshalb die Seite nicht heruntergeladen werden kann und der Fehler "Socket Timeout" generiert wird.

Die Lösung: Im Befehl muss noch der Parameter "-N" hinzugefügt werden. Hiermit wird nur die HTTP-Anfrage geprüft, aber nicht versucht eine Datei herunterzuladen:

define service{
use generic-service
service_description Webserver
name FHEM_Web
host_name <Hostname des FHEM-Servers>
check_command check_http!-p 8083 -N
}

Nun wird der Dienst korrekt durch Nagios überwacht.


 

Feedback, Verbesserungsvorschläge, weitere Ideen?

Einfach das Kontaktformular verwenden oder direkt eine E-Mail an info@kirgus.net.