Netzwerküberwachung mit Nagios

Seite 4: Webinterface

Inhaltsverzeichnis

Nagios bringt aber glücklicherweise ein umfangreiches Webinterface mit, das Überblick über das System verschafft. Bevor es aber soweit ist, muss zunächst der Webserver in der Datei /etc/apache2/conf.d/nagios.conf konfiguriert werden. Das könnte zum Beispiel mit konfigurierter Zugangsberechtigung so aussehen:

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin/<Directory /usr/local/nagios/sbin/>   Options ExecCGI   order deny,allow   deny from all   allow from 127.0.0.1   AuthName "Nagios Access"   AuthType Basic   AuthUserFile /usr/local/nagios/etc/htpasswd.users   Require valid-user</Directory><br />Alias /nagios /usr/local/nagios/share/<Directory /usr/local/nagios/share/>   Options None   order deny,allow   deny from all   allow from 127.0.0.1   AuthName "Nagios Access"   AuthType Basic   AuthUserFile/usr/local/nagios/etc/htpasswd.users   Require valid-user</Directory>

Zunächst ist der Zugriff auf das Webinterface nur vom lokalen Rechner erlaubt. Um auch von anderen PCs zugreifen zu können, muss man die beiden allow from-Direktiven um ein entsprechendes Netzwerk oder eine IP-Adresse erweitern, zum Beispiel

allow from 127.0.0.1 192.168.1 

für das Netzwerk 192.168.1.0/24. Wem die unverschlüsselte Verbindung mit Recht unheimlich ist, der findet auf der Nagios-Website ein Beispiel für verschlüsselten Zugriff per https.

Die letzten vier Zeilen in den beiden oben gezeigten Directory-Blöcken weisen den Web-Server an, nur Benutzern Zugriff zu gewähren, die sich mit Benutzername und Passwort anmelden. Die Passwörter werden in diesem Fall in der Datei /usr/local/nagios/etc/htpasswd.users nachgeschlagen. Dazu müssen die Benutzer angelegt werden, der erste mit

htpasswd2 -c /usr/local/nagios/etc/htpasswd.users aadmin 

alle weiteren ohne das -c. Der Name muss dem contact_name aus der Host- oder Service-Definition entsprechen, denn anhand dieser Kombination bestimmt Nagios, wer was zu sehen bekommt. Zusätzlich erhält jeder Benutzer Zugriff auf die Funktionen des Webinterface, für die er durch die mit authorized_for_ beginnenden Parameter in cgi.cfg autorisiert ist. Wenn also bei dem Zugriff auf eine Funktion des Webinterfaces eine Meldung über unzureichende Berechtigungen erscheint, muss in der cgi.cfg nachgebessert warden.

Nach einem /etc/init.d/apache2 start steht unter http:///nagios/ die Web-Oberfläche des Nagios-Servers zur Verfügung.

Wenn der Nagios- und auch der Web-Server laufen, sollte man sich die Zeit nehmen, das Webinterface zu erkunden. Neben verschiedenen Ansichten der überwachten Services und Hosts kann man sich auch Zusammenfassungen von Service- und Host-Problemen anzeigen lassen. Es gibt unter anderem eine Übersicht über Benachrichtigungen, ein Eventlog, eine Darstellung der Konfiguration.

Über das Webinterface lässt sich Nagios in Grenzen auch steuern. Zum Beispiel kann ein Admin einen Host bei einem bekannten Problem temporär von der Überwachung ausnehmen. Dazu muss er aber zunächst in nagios.cfg den Parameter check_external_commands=1 setzten und Nagios neu starten. Damit wird das "External Command File" verwendet, eine named pipe, durch die die Außenwelt mit dem Nagios-Prozess kommunizieren kann.

Nach der ganzen Arbeit möchte man jetzt nicht nur vor dem Monitor sitzen und ein grünes "OK" bewundern. Um das Webinterface und den Versand von Benachrichtigungen zu testen, bietet das Webinterface die Möglichkeit, den Status eines Checks zu setzen. Hierzu klickt man auf den Servicenamen und kommt in eine Detailansicht. Unter "Service Commands" gelangt man über den Punkt "Submit passive check result for this service" zu einem Formular. Übergibt man Nagios jetzt als "Check Result" ein "Critical" und als "Check Output" einen beliebigen String, hat man das Grün schnell in ein leuchtendes Rot verwandelt. Allerdings nur so lange, bis Nagios auf die Idee kommt, dass es Zeit für einen aktiven Check ist. Über diesen Mechanismus kann man sehr schön überprüfen, ob nach Erreichen der im Webinterface unter "Attempts" aufgeführten Anzahl der Checks die E-Mail-Benachrichtigung ausgelöst wird. Man muss nur schnell genug mit dem Webinterface sein …