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.