Livestatus-Modul in Nagios einbinden
Mit dem Livestatus-Modul lässt sich das Netzwerküberwachungssystem Nagios mit alternativen Frontends und anderer Software koppeln. Dieser Tipp zeigt, wie es geht.
Nagios ist ein bekanntes freies Netzwerküberwachungssystem. Es kommt zwar mit einer Web-Oberfläche im Lieferumfang, diese ist jedoch mit ihrer CGI-Technologie hoffnungslos überaltert, ineffizient und sehr limitiert im Funktionsumfang. Für das einfache Beobachten erfüllt sie ihren Zweck, mehr allerdings auch nicht.
Um eine alternative Oberfläche wie Thruk oder auch andere Anwendungen einzubinden, benötigt man das Livestatus-Modul. Livestatus von Mathias Kettner ist ein Plugin, das direkt in den Kern von Nagios geladen wird und den Status des Servers über einen Unix Domain Socket zur Verfügung stellt. Das ist ein Vielfaches effizienter als die traditionelle Methode, die Datei status.dat zu parsen.
Livestatus ist im Paketarchiv vieler Distributionen zu finden. Ist das nicht der Fall, kann man es von der Livestatus-Homepage herunterladen. Dann muss man es allerdings selbst compilieren, wofür ein C++-Compiler (z.B. G++) und die zugehörigen Werkzeuge installiert sein müssen. Bei Debian, Fedora, Red Hat und Kompatiblen heißt das Binärpaket check-mk-livestatus und setzt trotz des Namens kein checkmk voraus. Installiert wird es in Debian mit dem simplen Kommando
apt-get install check-mk-livestatus
in Fedora mit
yum install check-mk-livestatus
Die Konfiguration besteht aus einer einzigen Zeile in der Haupt-Nagios-Konfigurationsdatei, die man beispielsweise als /etc/nagios3/nagios.cfg angelegt hat. Folgende Zeile ist hinzuzufügen:
broker_module=/usr/lib/check_mk/livestatus.o /run/nagios3/live
Hier wird der Unix Domain Socket unter dem Namen live im Verzeichnis /run/nagios3 angelegt, das ohnehin schon existiert. Möglich sind aber auch andere Orte, darunter /var/lib/nagios3/rw. Man muss sich für einen Ort entscheiden und diesen Pfad bei Programmen angeben, die darauf zugreifen. Um die Konfigurationsänderung wirksam zu machen, führt man wie immer eine Konfigurationsprüfung durch und startet den Server dann neu:
nagios3 -v /etc/nagios3/nagios.cfg service nagios3 restart
Auf neueren Systemen mit Systemd kann statt der letzten Zeile auch
systemctl restart nagios3
verwendet werden. Will man den Livestatus über das Netzwerk zugänglich machen, genügt der Unix Domain Socket nicht. In diesem Fall verwendet man einen Remote-Zugriff über SSH oder einen Inet-Daemon wie inetd oder xinetd. Dies ist auf der Livestatus-Homepage ausführlich beschrieben, wo man zudem noch viele weitere Informationen findet, unter anderem zur umfangreichen Abfragesprache von Livestatus.