Nagios – Eine kurze Einleitung

In meinem letzten Blogeintrag habe ich ja schon kurz angedeutet, das ich neben meinem Studium noch einen Nebenjob in einem Rechenzentrum habe. Und das ich mich dort um die Pflege und Erweiterung eines Nagios-Systems kümmere.
Heute möchte ich ein wenig darüber schreiben, was ich dort genau tue. Und anfangen möchte ich mit einer kleinen Erläuterung, was Nagios überhaupt ist und was man da alles schönes mit machen kann.

Nagios – Grundlagen

Nagios ist ein Monitoring-System, mit dem sich verschiedene Geräte und auf solche laufende Dienste (oder auch Eigenschaften) überwachen lassen. Ziel ist es dabei schnell Ausfälle festzustellen und diese dem zuständigen Administrator mit zu teilen, so dass dieser dann schnell darauf reagieren kann.
Das war jetzt eine wirklich sehr kurze Beschreibung. In Wahrheit kann es nämlich noch viel mehr…

Allgemein werden in Nagios Geräte als Hosts bezeichnet. Das können normale PCs, Server, Drucker, Switches, Router oder andere Geräte, die über eine IP-Adresse ansprechbar sind, sein.
Die Eigenschaften eines Geräts werden in Nagios als Services bezeichnet. Im Prinzip lässt sich jede Eigenschaft eines Geräts überwachen, wie z.B. Speicherplatz auf einer Partition, CPU-Auslastung, Arbeitsspeicherauslastung oder Festplatten-Aktivität. Es lassen sich aber auch Tests auf Protokollebene ausüben. Also wenn man z.B. die Erreichbarkeit eines FTP-Servers testen möchte, macht man dies auf FTP-Ebene. Was für Betriebssysteme auf diesen Geräten läuft ist dabei egal. Darum lassen sich auch Switches oder Router überwachen (über SNMP). Aber das sind nur einige Aspekte.
Die Grundinstallation von Nagios beinhaltet schon die Unterstützung der gängigsten Protokolle (FTP, IMAP, SNMP, etc. ).
Ein weiterer Vorteil von Nagios ist, dass sich das System erweitern lässt. Zum Einen durch eine große Plugin-Sammlung. Zum Anderen ist es auch möglich selbst Test-Plugins zu schreiben. Dabei ist man nicht an einer Programmiersprache gebunden, sondern kann viele verschiedene nutzen (Perl, Java, PHP, etc.).

Wird ein Host oder ein Service vom Nagios-System überprüft, weist es ihm einen der folgenden Status zu:

  • OK: Service/Host sind in Ordnung
  • WARNING: ein WARNING-Wert wurde erreicht
  • CRITICAL: ein CRITICAL-Wert wurde erreicht
  • UNKNOWN: Der Status des Services/Hosts ist nicht ermittelbar

Wobei die WARNING- und CRITICAL-Werte bei jedem Plugin angegeben werden können. So könnte man z.B. bei der Überprüfung des freien Speicherplatzes bestimmen, dass wenn die Festplatte zu 80 % voll ist, eine WARNING und ab einen Wert von 90 % ein CRITICAL ausgegeben wird.

Wie oft ein Objekt getestet wird, wer benachrichtigt wird oder wann eine Benachrichtigung erfolgt (bei jedem Statuswechsel oder z.B. nur bei OK->Critical, …)  ist natürlich frei konfigurierbar und an seine persönlichen Anforderungen anpassbar.
Darüber hinaus kann Nagios selbst auf kritische Zustände reagieren, mit Hilfe von sog. Eventhandlers. So ist es möglich, dass wenn der Speicher z.B. zu 90 % voll ist, ein Skript gestartet wird, dass alle TEMP-Dateien löscht…

Als wenn das schon nicht super wäre, besitzt das Nagios auch noch eine Weboberfläche, wo man sich als Administrator schnell mal eine Übersicht darüber machen kann, welche Dienste/Server noch laufen und welche nicht. Hier hab ich mal ein Beispiel:

Nagios-Weboberfläche

Nagios-Weboberfläche

Also wie du hoffentlich siehst: Nagios ist sehr umfangreich. Und das beste: Es ist steht unter GNU GPL -> freie Software

Und was macht der Heini jetzt?

Als ich vor knapp 2 Jahren hier im Rechenzentrum angefangen bin, gab es noch kein einheitliches Nagios-System, d.h. jede Abteilung hatte seine eigene Lösung. Manche hatten sogar keinerlei Monitoring-System, was dazu geführt hat, dass ab und an mal Systeme ausgefallen sind, ohne das das jmd mitbekommen hat bzw. erst sehr spät realisiert wurde. Meistens ist den „Kunden“ der Ausfall eher aufgefallen als den Admins! 🙂
Auf Dauer war das natürlich keine Lösung! Darum wurde mir damals, bei meiner Einstellung, dieses Projekt zugeteilt: ein einheitliches Monitoring-System für alle.
Schnell viel natürlich die Auswahl auf Nagios… joa und 2 Jahre später haben wir jetzt ein gut funktionierendes Nagios-System, nach dem sog. verteiltem Monitoring:
Es gibt für verschiedene Bereiche jeweils eine eigene Nagios-Instanz, die wiederum Ihre Test-Ergebnisse an einen zentralen Nagios-Server schicken, der sich um die Benachrichtigung kümmert. Somit haben wir eine gleichmäßige Last-Verteilung und nicht eine Nagios-Instanz die kontinuierliche 1000 Hosts und Services überprüft. 😉

Und das war/ist größtenteils mein Aufgabe! Ich habe das System aufgesetzt und werde es jetzt regelmäßig erweitern, um neue Hosts/Services aber auch neue Nagios-Instanzen.

Was macht der Heini aktuell?

Zur Zeit arbeite ich an einem Test-Plugin für Informix-Datenbanken. Dabei soll überprüft werden, ob die Datenbank noch erreichbar ist und wie lange dieser Verbindungsaufbau gedauert hat.
Leider gibt es kein oder gutes fertiges Plugin, was sich mit einer Informix-Datenbank verbinden kann, somit blieb mir nichts anderes übrig als es selbst zu implementieren.
Das geht aber relativ einfach, wenn man die vorgefertigten Nagios-Perl-Skripte als Grundlage nutzt… Aber darüber schreib ich nochmal einen extra Blogeintrag.

Habe ich dein Interesse geweckt?

Falls das so ist, kann ich dir noch ein paar Literatur-Empfehlungen mit auf den Weg geben. Hier in meiner Firma haben wir 2 wirklich sehr gute Bücher:

  1. Praxisbuch Nagios von Tobias Scherbaum; ISBN: 978-3-89721-880-2
    Praxisbuch Nagios bei Amazon
  2. Nagios – Das Praxisbuch: Open Source-Monitoring im Unternehmen von Gerhard Laußer; ISBN: 978-3-8273-2800-7
    Nagios – Das Praxisbuch: Open Source-Monitoring im Unternehmen bei Amazon

Also das erste kann ich ganz gut empfehlen als Nachschlagewerk. Dort sind die Grundlagen sehr gut erklärt.
Beim Zweiten ist es eigentlich genauso. Allerdings würde ich es eher nicht als Nachschlagewerk nutzen. Sondern es glänzt mehr dadurch, dass der Autor auf viele typische Unternehmensszenarien eingeht und erklärt, wie man diese durch Einsatz eines Nagios-Systems lösen bzw. optimieren kann. Auch der Teil darüber, wie man seine eigene Test-Plugins schreibt, ist sehr gelungen.

Darüber hinaus gibts natürlich jede Menge Infos im Web:

Solltest du noch irgendwelche Fragen haben, kannst du mich natürlich auch kontaktieren! 🙂

Dieser Beitrag wurde unter Nagios abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Leave a reply