Mit dem Prozessmonitoring-Framework alles im Blick

Nagios: Netzwerküberwachung Open Source
Kommentare

Server, Router, Firewalls oder auch wichtige Systemprozesse sind oft kritische Komponenten in Unternehmen. Bei akuten Problemen wird es dann schnell hektisch im Büro des Systemadministrators. Dieser Artikel zeigt Ihnen, wie Sie mit dem Open-Source-System- und Prozessmonitoring-Framework Nagios den Überblick behalten, Probleme schnell lokalisieren und entsprechend zielgerichtet reagieren können.

Mit der Anfang des Jahres fertig gestellten Version 2.0 optimiert Nagios-Gründer und -Entwickler Ethan Galstad seine auf C-Code basierte Software in vielen Punkten. Das Open-Source-Projekt ist nach einer kurzen „Ruhephase“ wieder richtig aktiv. Galstad arbeitet seit einiger Zeit bereits Fulltime an Nagios und gab vor mehr als einem Jahr die erste Betaversion für Nagios 2 frei, bis nun Anfang Februar 2006 die Version 2.0 als stable gekennzeichnet wurde. Die in der Zwischenzeit nachgereichten Versionsnummer 2.1 und 2.2 sind lediglich Bugfixing-Releases, neue Features sollen nur noch in die kommende Version 3 eingehen, mit deren Entwicklung in Kürze begonnen werden soll. Prominente Firmen wie eBay, Sun Microsystems, Symantec und Yahoo! nutzen Nagios bereits heute, in Deutschland ist Nagios vor allem im Mittelstand präsent.

Drei Schritte zum Basissystem

Schon bei der Installation der neuen Version 2 werden eingesessene Nagios-Anhänger feststellen, dass der Datenbank-Support weggefallen ist. Von Ethan Galstad als „nicht ausgereift“ betitelt, fanden die MySQL- und PostgreSQL-Versionen trotzdem eine große Verbreitung in der Community durch zahlreiche Distributionen wie SuSE oder auch Debian. Mit der neuen Version ist damit Schluss, der native DB-Support wurde auf Version 3 und damit auf eine neue, auf Perl und PHP basierende Oberfläche verschoben. Um bis zum Release der 3.0-Version nicht gänzlich auf den Komfort einer Datenbank verzichten zu müssen, gibt es einige Datenbank basierende Tools zur Administration der Konfigurationsdateien, wie z.B. das auf MySQL basierte Webinterface NagiosQL. Für einfache „Alive“-Checks und Ressourcen-Überprüfungen genügt vorerst die offizielle Nagios-Plug-in-Sammlung den Ansprüchen einer Basisinstallation.

Der erweiterte Dreisatz

Wer nicht Red-Hat- bzw. Fedora-Core-User ist, der wird zurzeit nicht um die Sourcecode-Installation herumkommen. Fertige RPMs für SuSE oder DEBs für Debian-Systeme werden noch einige Zeit brauchen, bis dahin greift man zur typischen Quellcode-Installation. Auf der Nagios-Website [1] gibt es den Link zu den erwähnten Red-Hat-Paketen und natürlich auch den Sourcecode für die folgende Installationsanleitung. Nagios benötigt für die Darstellung der Symbole im Webinterface Boutells GD Library (libgd), die im Vorwege installiert werden sollte. Nach erfolgreichem Entpacken steht ein erweiterter Dreisatz an. Als Beispiel dient hier eine typische Nagios-Systemumgebung. Wer eine Installation nach /usr/local vorzieht, lässt den Rattenschwanz einfach weg, und wer sich an Embedded Perl (bessere Performance, aber schlechte Kompatibilität zu alten Perl-Plug-ins) wagen möchte, fügt dem Ganzen einfach –enable-embedded-perl –with-perlcache hinzu:

./configure --with-init-dir=/etc/init.d --with-cgiurl=/
  nagios/cgi-bin --with-htmurl=/nagios --with-lockfile=/
    var/run/nagios.pid --prefix=/usr --exec-prefix=/usr/
     sbin --bindir=/usr/sbin --sbindir=/usr/lib/nagios/
        cgi --libexecdir=/usr/lib/nagios/
          plugins --datadir=/usr/share/
            nagios --sysconfdir=/etc/
              --localstatedir=/
               var/log/nagios

Es folgen die typischen Befehle ./make all und ./make install (legt auch die Gruppe und User nagios an). Doch damit ist es noch nicht geschafft:

  • ./make install-init (installiert das init-Skript nach /etc/init.d/)
  • ./make install-commandmode (setzt die Berechtigungen für das CommandFile)
  • ./make install-config (erstellt einfache Beispielkonfigurationsdateien nach /etc/nagios/)

Sofern die Installation fehlerfrei durchgelaufen ist, ist Nagios grundsätzlich einsatzbereit. Es fehlt lediglich die Anpassung des Webservers, um den ersten Startbildschirm von Nagios betrachten zu können.

Apache-Konfiguration

Mit Einführung der Nagios 2.0 Beta 6 wurden zu Gunsten der Sicherheit einige Anpassungen an die Apache-Konfiguration gemacht. Eine Beispieldatei liegt nach der Installation im Sourcecode-Verzeichnis unter sample-config/httpd.conf (Listing 1). Ist die Apache-Konfiguration um diese Zeilen ergänzt, sollte bereits die Nagios-Startseite zu sehen sein. Einige Nagios-Webseiten sind jedoch noch nicht zu erreichen. Dafür ist die Authentifizierung eines Nagios-Benutzers nötig, für die ein so genanntes „Apache AuthUserFile“ angelegt werden muss:

linux:# htpasswd -c /etc/nagios/
  htpasswd.users nagiosadmin

Nach Eingabe des Passworts ist auch diese Hürde gemeistert. Ein Apache-Restart sollte fehlerfrei funktionieren und unter webserver/nagios sollte nach Eingabe der Userdaten die Nagios-Startseite erscheinen. Ob die Authentifizierung über Apache funktioniert, kann man an dem Benutzernamen „nagiosadmin“ erkennen, der zumindest auf der Seite Configuration => View Config oben auf der Seite eingeblendet sein sollte. Die anderen Seiten liefern noch Fehler zurück, was bis zu diesem Zeitpunkt aber in Ordnung ist.

Nagios-Webinterface-Konfiguration

Nagios erlaubt die Konfiguration von Benutzern für unterschiedliche Rechte auf das Webinterface. Für diese Basisinstallation werden dem soeben eingerichteten User „nagiosadmin“ sämtliche Rechte auf das Webinterface eingerichtet. Dafür sind die folgenden Konfigurationsoptionen in der /etc/nagios/cgi.cfg zuständig, die nach der Installation noch auskommentiert sind:

authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
Nagios-Plug-ins

Bei der Installation der offiziellen Nagios-Plug-in-Sammlung [2] kann die ausführliche ./configure-Zeile aus der Nagios-Installation nach dem Download und Entpacken erneut benutzt werden, auch wenn einige Parameter obsolet sind. Im Laufe des ./configure wird auf fehlende Bibliotheken aufmerksam gemacht, da einige Plug-ins spezielle Libraries zum Kompilieren benötigen. Grundsätzlich sind diese fehlenden Libraries nicht für jedes Plug-in Pflicht, benötigt werden diese meist nur von speziellen Prüf-Plug-ins wie z.B. MySQL, PostgreSQL, Radius oder auch LDAP, Näheres liefert der Programmoutput. Gefolgt von einem make und einem make install erfolgt die Installation der Plug-ins dann getreu dem typischen Dreisatz. Die fertigen Plug-ins liegen bei Angabe des libexecdir wie aus der Nagios-Installation unter /usr/lib/nagios/plugins. Eine zusätzliche Quelle für so genannte Third-Party-Plug-ins bietet NagiosExchange [3], dort gibt es zahlreiche Plug-ins für erweitertes Hardwaremonitoring, Speziallösungen, aber auch Ergänzungen zu bestehenden Plug-ins. Die Plug-ins sind zumeist Quellcode-offene Shell- oder Perlskripte und lassen sich nach Überprüfung der Pfade einfach in das Plug-in-Verzeichnis kopieren und sofort benutzen.

Nagios 2 – was gibt’s Neues? Eine komplette Liste der Änderungen würde den Rahmen des Artikels sicherlich sprengen, der „What’s New“-Bereich [6] des Handbuchs beträgt rund dreieinhalb ausgedruckte Seiten. Eine kleine Übersicht der wichtigsten Änderungen:
  • kein nativer DB-Support
  • Konfigurationsdateien rekursiv durch Verzeichnisse einlesbar
  • Servicegroups hinzugefügt (z.B. zur Abbildung von Geschäftsprozessen)
  • Event Broker API für die Entwicklung von Modulen erstellt
  • Benachrichtigung bei Flapping Detection (schnell wechselnde Service/Host-Status)
  • Nagios Statistik Tool hinzugefügt (nagiostats)
  • Performance Tuning der Webseiten
Listing 1
----------

ScriptAlias /nagios/cgi-bin "/usr/lib/nagios/cgi"

# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios/htpasswd.users
Require valid-user

Alias /nagios "/usr/share/nagios"

# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios/htpasswd.users
Require valid-user
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -