Während man einen Server noch recht einfach verwalten kann, stellt sich Systemadministratoren mit mehreren Servern schnell das Problem der Übersicht. Wie soll man über alle Systeme den Überblick bewahren? Wie ist die Auslastung auf den Systemen? Wie erfahre ich, dass ein Server ausgefallen ist?
Als Antwort auf diese und ähnlich gelagerte Fragen bietet der Softwaremarkt eine Reihe kommerzieller und sehr kostenintensiver Produkte, aber wie so oft lohnt der Blick über den Gartenzaun, hinüber zu dem Grundstück wo Open Source Produkte blühen. Mit ein bisschen Zeit und überschaubarem Aufwand kann man so ein praktisches Überwachungssystem auf die Beine stellen, welches auch professionellen Ansprüchen genügt.
Schritt für Schritt
Als erstes kann man sich von der Seite http://www.nagios.org/ kostenlos die neueste Version herunterladen. Die Software wird unter der GNU General Public License veröffentlicht und ist somit kostenlos, solange man die Software nicht mit kommerziellen Absichten verändert und weiterverkauft.
Als Basis für die Installation benötigt man eine Linux Installation, aber nicht zwingend eine Enterprise Edition. Wir haben uns für ein Startcom Linux entschieden, es sollte aber auch beispielsweise eine Red Hat oder Suse Professional Installation genügen. Das Handbuch erklärt alles sehr detailliert und ist daher auch für LinuxEinsteiger zu empfehlen. Bei der Installation sollte man nur darauf achten, dass man einen CCompiler und die SNMPPakete mitinstalliert und sonst alles was ein Webserver üblicherweise so braucht: Apache, mySQL und Perl. Als Besonderheit kommt nur noch die GD Library Version 1.6.3 oder höher hinzu.
Bei den Hardwarevoraussetzungen gibt sich Nagios genügsam und kann auch parallel zu anderen Applikationen installiert werden. Beim LBV BW ist es ein Thomas Krenn SR107 mit einem P4 3,0 GHz Prozessor und einem GB Ram.
Hat man die Installation hinter sich gebracht muss man sich noch etwas mit verschiedenen Konfigurationen herumschlagen. Das ist eigentlich das härteste Stück Arbeit, weil man sich erst die Funktionsweise der Konfigurationsdateien hineindenken muss, aber die mitgelieferten Beispieldateien helfen dabei.
Baukastenprinzip
Nagios ist modular aufgebaut und arbeitet mit Plugins. Dies sind Kommandozeilentools, mit den Nagios den Status eines Hosts oder eines Service prüft. Mit Hilfe der Ergebnisse der einzelnen Plugins entscheidet Nagios über den Zustand: Kritisch, Warnung oder Okay. Die Schwellwerte für diese Zustände kann man in den Konfigurationsdateien selbst angeben.
Auch diese Plugins sind kostenlos erhältlich und so kann man sich genau die Komponenten einbauen, die man für seine individuelle Umgebung braucht. Legt man die Plugins im dafür vorgesehenen Ordner ab, kann man sie in einem Terminal auch testen und dann seine Konfigurationsdateien anpassen. Auch dieser Schritt ist im Handbuch gut erklärt und geht leicht von der Hand. Natürlich kann man auch eigene Plugins für sein Nagios schreiben und so ganz spezielle Systeme überwachen.
Wichtig zu erwähnen, dass man mit Nagios natürlich nicht nur Linuxbasierte Systeme überwachen kann, sondern auch jede Windowsmaschine im Unternehmen. Entweder man beschäftigt sich hier intensiver mit den Möglichkeiten von SNMP oder man greift auf ein entsprechendes Plugin zurück. Der „NSClient“ beispielsweise liefert die CPULast, die Festplattenausnutzung, kann auch einzelne Dienste von WindowsServern überwachen und vieles mehr.
The first to know
Irgendwann hat man all seine Server und Netzwerkkomponenten in Nagios integriert und kann sich dann über die neuesten Aktivitäten informieren. Wie sind die Antwortzeiten meiner internen Systeme? Wie hoch ist die CPULast auf den Routern und wie steht es um die Antwortzeiten von externen Systemen, die ich nicht betreue, von denen das Unternehmen aber abhängig ist?
Nun hat man Antworten auf diese und zahlreiche andere Fragen und nicht nur aktuell, sondern auch in Form von aussagekräftigen und damit cheftauglichen Statistiken, denn alle Werte und Ereignisse werden in die mySQLDatenbank geschrieben und so kann man dann eben auch feststellen, wann genau am Wochenende ein System erstmalig ein Problem hatte.
Besonders hervorzuheben ist die Möglichkeit Dienste damit zu überwachen. Wie oft war ein Server netzwerktechnisch noch erreichbar, aber ein Dienst war abgeschmiert? Nagios überwacht nun auch diese Dienste und meldet auf vielfältige Weise, ob es damit Probleme gibt. Beim LBV BW werden die Meldungen über Email verschickt (ein Postfix Server auf der gleichen Maschine erledigt den Rest), aber man kann noch weiter gehen: Pager, SMS, Popups, ja sogar Nachrichten an den heimischen ICQ Client sind denkbar.
Zu guter Letzt ist die Status Map als Highlight zu erwähnen, welche alle überwachten Systeme dynamisch in einer übersichtlichen Grafik anzeigt. Alle Server, Firewalls und Netzwerkkomponenten auf einen Blick und hoffentlich alle grün unterlegt. Ändert sich das, zeigt das kräftige Rot, dass Handlungsbedarf besteht und hilft so noch schneller den Ursprung des Problems schnell und genau festzulegen ohne lange suchen und forschen zu müssen.
Nagios: http://www.nagios.org
Offizielle Nagios-Plugins: http://nagiosplug.sourceforge.net/
Weitere Plugins: http://www.nagiosexchange.org/
NSClient: http://nsclient.ready2run.nl/
(c) Alexander Rizzi
Onkel KK stellt vor: NAGIOS
Was ich auch richtig gut finde ist nrpe. damit kann man remote plugins abfragen. sehr nützlich und sehr einfach zu installieren. Ausserdem gibt es ein paar richtig gute Verwaltungs-Oberflächen, vor allem Oreon (oreonproject.org). Super GUI, funktioniert problemlos, nur die Install ist etwas ruppig... Aber es lohnt sich, einfach mal anschauen.
Das wirklich schwere bei der Install ist das Lösen der Abhängigkeiten. Hab bei PEAR fast das heulen angefangen. Allerdings gehts ganz einfach, wenn du erst PEAR auf V3.x updates und von dort aus ein komplettes Update machst. Dann noch zwei mal die Channels gewechselt, benötigte Libs runtergeladen und: TADA!
Das wohl beste Nagios-Frontend überhaupt nimmt gestalt an.
Hab aber auch mal ne Frage: Kennst du ne Möglichkeit, RDP entweder remote oder per NRPE zu monitoren? Den Port selber ist ja kein Thema, allderinsg sagt das ja nichts über den Connectstatus etc aus...

Hab aber auch mal ne Frage: Kennst du ne Möglichkeit, RDP entweder remote oder per NRPE zu monitoren? Den Port selber ist ja kein Thema, allderinsg sagt das ja nichts über den Connectstatus etc aus...
Naja, das kommt daher, dass wir auch einige Windows Kisten remote betreuen (wie ginge es denn besser, über RDP).
Das Ding ist, dass auch unser Kunde per RDP direkt an dem Server arbeitet (von Zeit zu Zeit).
Eine Verbindung muß daher IMMER möglich sein.
Ich teste das jetzt übirgens mittels check_tcp auf Port 3389 (ist das nicht RDP, ich denke es war RDP...). Damit ist wenigstens Sichergestellt, dass ein Connect auf den Port möglich ist. Allerdings kann ich NOCH keine neue Verbindung automatisch öffne. Arbeite aber dran, sobald ich rausgefunden hab wie ich X11 korrekt fernsteuern kann sag ich dir bescheid
Das Ding ist, dass auch unser Kunde per RDP direkt an dem Server arbeitet (von Zeit zu Zeit).
Eine Verbindung muß daher IMMER möglich sein.
Ich teste das jetzt übirgens mittels check_tcp auf Port 3389 (ist das nicht RDP, ich denke es war RDP...). Damit ist wenigstens Sichergestellt, dass ein Connect auf den Port möglich ist. Allerdings kann ich NOCH keine neue Verbindung automatisch öffne. Arbeite aber dran, sobald ich rausgefunden hab wie ich X11 korrekt fernsteuern kann sag ich dir bescheid
