Nagios #
Nagios (http://www.nagios.org ) ist ein Server, der ein Netzwerk mit einem oder mehreren Hosts und darauf laufenden Diensten auf Funktion überwacht. Fällt irgendetwas aus oder sieht seltsam aus, so informiert er einen Administrator z.B. per Mail oder per SMS.
Nagios scheint der de-facto-Standard zum Thema "Monitoring unter Linux" zu sein. Allerdings gibt es auch gute Gründe, sich andere Projekte anzusehen. Auf Monitoring stehen noch einige Programme, die eine etwas andere Herangehensweise haben. So ist wahrscheinlich Munin besser geeignet, wenn man die "Lebensdaten" seiner Dienste über eine längere Zeit verwalten und sehen möchte. Auch Icinga ist einen Blick Wert. Dabei handelt es sich um einen vielversprechenden Fork von Nagios.
Installation #
Im Grunde ruft man nur
aptitude install nagios3 nagios3-doc
auf und ist schon fertig. Man kann sodann mit einem Browser auf http://localhost/nagios3 gehen und sieht schon die Standard-Konfiguration von Debian (Benutzername ist nagiosadmin und das Passwort vergibt man bei der Installation). Es ist ein Host (localhost) eingerichtet, auf dem mehrere Services überwacht werden wie freie Festplatten-Kapazität, Speicher, CPU-Last u.ä. Nun kann man die Konfiguration schrittweise erweitern, wenn man möchte.
Ein winziger Fehler hat sich in das Debian-Paket eingeschlichen, dessen Behebung uns später die Arbeit erleichtert (weil sonst die Online-Hilfe nicht über den Link der Weboberfläche aufrufbar ist). Also gehen wir in die Datei /etc/nagios3/apache.org und fügen in der Zeile
DirectoryIndex index.php
den Text index.html hinten an.
Konfiguration #
Unter Debian schaut man sich das Verzeichnis /etc/nagios3/ an und fügt dort im Unterverzeichnis "conf.d" eine eigene Datei hinzu, die auf ".cfg" endet. Beispiele sind dort bereits einige vorhanden.
Als Grundsatz definiert man zuerst die Hosts, die man hat (also die Rechner) und dann die Services, die überprüft werden sollen. Ein Service kann auch direkt auf mehreren Hosts laufen, indem man in der Service-Definition eine Liste von hosts oder eine hostgroup angibt.
Alle Befehle, die Nagios zum Chekc des Netzwerkes ausführt, sind sogenannte Plugins. Hiervon werden standardmäßig eine Menge mitinstalliert. Man kann allerdings auch ganz einfach eigene Plugins z.B. als Shellskript oder in einer beliebigen anderen Sprache schreiben.
Ein Service benutzt immer ein Command, das die eigentliche Arbeit macht bzw. definiert, wie diese gemacht wird. Für die vorgegebenen Plugins gibt es bereits eine Menge vordefinierte Commnands, die man direkt benutzen, an denen man sich aber auch bei eigenen Experimenten gut orientieren kann. Diese liegen in /etc/nagios-plugins/config/ und werden standardmäßig alle eingebunden.
eigene Icons #
Falls man eigene Icons einbringen möchte, um die Server auf der Weboberfläche hübscher und übersichtlicher aufzubereiten, kann man sich mal in /usr/share/nagios3/htdocs/images/logos/ umsehen, was es dort schon alles gibt, aber dort auch ein Unterverzeichnis mit eigenen Bildern anlegen.
Zugriff auf ferne Server #
Wenn eine Funktionsprüfung eines ganzen Netzwerkes Sinn machen soll, ist es natürlich dazu nötig, auch Daten von Servern zu sammeln, an die man eigentlich gar nicht herankommt. Hierzu gibt es mehrere Methoden: Die klassischste Methode ist SNMP. Das erfordert die Installation eines Daemons und ist ohne grosse eigene Anpassung nur für wenige Standard-Dienste einzurichten. Besser ist der "Nagios Remote Plugin Executor" NRPE. Das ist ein kleiner Server, den man auf dem fernen Rechner installiert (z.B. auch als Windows-Version). Dieser startet auf Anfrage des Nagios-Servers lokal die originalen Nagios-Plugins (die dann natürlich dort auch installiert sein müssen).
Am flexibelsten ist man mit dem Plugin check_by_ssh. Dieses loggt sich per ssh (per Public Key) auf einem fernen Rechner ein und führt dort beliebige Programme (also zumeist wieder die Nagios-Plugins, die man also auch am besten installiert) aus.
Bei letzterer Methode sollte man das System so konfigurieren, daß man sich nur als User (nicht root!) auf den überwachten Systemen einloggt und das man höllisch aufpasst, daß kein Hacker in den Nagios-Server einbricht, weil dieser einen Zugangsschlüssel zu praktisch allen anderen Systemen besitzt. Bei NRPE können nur einzeln definierte Plugins aufgerufen werden. Das kann man für sicherer halten, aber auch hier könnte sich irgendwo ein Loch verstecken. Letztlich bleibt die Erkenntnis, daß man zum Monitoring einen Zugriff von außen benötigt und genau dieser leider immer gefährlich ist.