Konfigurationstools für Nagios gibt es viele. Der Neueinsteiger Nconf hebt sich positiv von der Masse ab: Dem Admin großer Installationen verschafft er echte Verschnaufpausen.
Kaum eine Software polarisiert die ansonsten recht unkomplizierte Gruppe der Linux-Administratoren mehr als grafische Konfigurationstools. Während den einen jeder Schritt ohne GUI schmerzt, verachtet der andere solche Werkzeuge als Kniefall vor Windows. Trotzdem gibt es einige Vorteile, die sich nur schwer bestreiten lassen. Gerade Einsteiger machen mit einer grafischen Oberfläche weniger Fehler und wenn doch, dann lassen sie sich darin leichter finden. Außerdem kann auch der Kollege aus der Windows-Abteilung damit Serverüberwachungen selbst einrichten und verwalten. Das spart auf lange Sicht möglicherweise mehr Zeit, als es kurzfristig Zeit kostet, sich das Konfigurationstool Vi abzugewöhnen.
Neu im Regal
Nconf [1] setzt genau da an und bietet eine Web-basierte Konfigurationsoberfläche für Nagios. Mitarbeiter der Firma Sunrise Communications AG, einem Schweizer Telekommunikationsunternehmen, programmierten das GUI für den internen Einsatz. Inzwischen hat ihr Arbeitgeber die Software unter die GPL gestellt. Zwar existieren mittlerweile viele Konfigurationstools für Nagios, aber im Gegensatz beispielsweise zu Nagios QL [2] oder Lilac [3] positioniert sich Nconf speziell im Markt für sehr große Monitoring-Umgebungen.
Voraussetzungen
Nconf ist in PHP, Perl und MySQL geschrieben. Während die Software ihre Bewegungsdaten in der Datenbank verstaut, stehen ihre eigenen Einstellungen in PHP-Konfigurationsdateien. Laut Website sollen sie in einer kommenden Release allerdings ebenfalls in die Datenbank wandern. Das Webinterface ist in PHP programmiert und die Nagios-Konfigurationsdateien entstehen mittels Perl. Nconf ist genügsam und erfordert keine exotischen Pakete. Auf einem Apache Webserver nutzt es lediglich folgende Komponenten:
- PHP 4.4 oder höher mit den Paketen »php-mysql«
sowie »php-ldap« für die Authentifizierung gegen
LDAP - MySQL 5.0.2 oder höher mit der Inno DB Storage Engine
- Perl 5.6 oder höher mit »perl-DBI« und
»perl-DBD-MySQL«
Als Letztes benötigt Nconf noch ein kompiliertes Nagios-Binary, das sich der Admin einfach von einem anderen Server mit der gleichen Architektur kopiert. Es überprüft später die Syntax der von Nconf erzeugten Konfigurationsdateien, damit beim Nagios-Reload keine Probleme auftreten (Abbildung 1). Erst danach verteilt der Admin die neue Konfiguration auf die zu überwachenden Server.

Abbildung 1: Nconf generiert Nagios-Konfigurationsdateien und prüft sie auch gleich auf Syntaxfehler.
Installation
Besonders einfach gelingt die Installation dank des guten Quickstart Guide [4] aus dem Nconf-Wiki. Zuerst wandert der Tarball zum Entpacken in ein Verzeichnis des Webservers:
cd /var/www tar zxvf Downloadpfad/nconf-1.2.4-0.tgz
Der Webserver selbst benötigt anschließend für einige Verzeichnisse Schreibrechte. In ihnen speichert Nconf seine eigene Konfiguration sowie die für Nagios erstellten Dateien:
chown www-data.www-data ./config ./output ./temp
Von der verwendeten Linux-Distribution hängt ab, wie der Nconf-Administrator die Inno DB Storage Engine einrichten muss, mit der die Verwaltungssoftware ihren Informationsspeicher absichert. An dieser Stelle empfiehlt sich ein Blick in die MySQL-Dokumentation. Zumindest in Debian Lenny ist nach der Installation von MySQL 5 schon alles richtig eingestellt. Danach fehlt noch die Datenbank selbst mit den passenden Rechten:
mysql -u root -p Enter password: mysql> create database nconf; mysql> grant select, insert, update, delete, create, drop, alter ON `nconf`.* to 'nconf'@'localhost' identified by 'Passwort';
Am Ende importiert folgender Ausdruck die Nconf-Grundstruktur:
mysql -u root -p nconf < INSTALL/create_database.sql
Die weitere Installation erfolgt im Browser unter der URL:
http://IP-Adresse/nconf/INSTALL.php
Der Installationsassistent prüft im ersten Schritt, ob alle notwendigen Pakete in der richtigen Version installiert sind. Zweitens gibt der Admin die Datenbankverbindung an, drittens die Pfade und URLs, unter denen Nconf zu erreichen ist. Aus Sicherheitsgründen lässt sich das Webinterface danach nur aufrufen, wenn die temporären Dateien gelöscht sind – sehr löblich.
Im letzten optionalen Schritt passt der Admin die Authentifizierungsoptionen an. Hier zeigt sich Nconf flexibel: Von der abgeschalteten Anmeldemaske über Benutzer/Kennwort-Datei bis hin zur Datenbank- oder LDAP-Authentifizierung ist alles möglich. Die dafür zuständige Konfigurationsdatei »./config/authentification.php« enthält gut dokumentierte Beispiele. An Nagios selbst sind keine Änderungen vorzunehmen. Das Programm übernimmt später lediglich die von seinem Manager erstellten Konfigurationsdateien: Nconf agiert als separate Anwendung.
Übersicht behalten
Nach dem ersten Einloggen bietet Nconf ein gut strukturiertes, übersichtliches und nicht überladenes Webinterface (Abbildung 2). Erfahrende Nagios-Administratoren finden sich schnell zurecht, denn die Nomenklatur in Nconf ist von Nagios bestens bekannt. Wer erst noch Erfahrungen mit Nagios sammelt, wird hin und wieder einen Blick in die Dokumentation werfen müssen. Einsteiger dürften mit Nconf aber immer noch besser zurechtkommen, als mit manuell zu editierenden Konfigurationsdateien.

Abbildung 2: Das Webinterface von Nconf präsentiert sich aufgeräumt und übersichtlich. Zu lang darf die Liste allerdings nicht werden. Auf dem Wunschzettel an das Projekt steht eine schnelle Ajax-Suche.
Wer eine große Zahl an Hosts und Services mit Nagios verwaltet, vermisst beim genaueren Hinsehen aber doch ein paar Arbeitserleichterungen. In der Service-Ansicht zeigt die Software-Oberfläche nur eine lange Liste der Hosts mit allen konfigurierten Services. Bei 300 Geräten mit je 20 Überwachungen – in großen Firmen keine ungewöhnlichen Zahlen – hat diese Liste 6000 Einträge. Zwar befindet sich oben am Rand eine Filterfunktion, eine schnell reagierende Ajax-Suche wäre aber wünschenswert.
Für jeden der vorhandenen Objekttypen wartet das Webinterface sowohl mit einer Listenansicht als auch mit einer Filterfunktion auf sowie mit einer Detailansicht zum Hinzufügen oder Modifizieren des Eintrags. Sehr praktisch ist die Funktion »multi modify«, die mehrere Objekte eines Typs in einem Durchlauf modifiziert. Die Funktion kommt beispielsweise zu Ehren, wenn vor einem Urlaub alle Benachrichtigungen des Mitarbeiters auf einen Kollegen umzuleiten sind oder viele Hosts einen neuen Switch als Parent bekommen.
Alte und neue Bekannte
Fast alle Objekte, die Nagios kennt, sind auch in Nconf vorhanden: Hosts und Hostgroups, Services und Servicegroups, Contacts und Contactgroups, ebenso wie Commands und Timeperiods. Nicht unterstützt sind bisher Abhängigkeiten zwischen Host und Service, die über eine Parent-Child-Beziehungen hinausgehen. Auch fehlen Escalations für die Benachrichtigungen. Diese Objekte sind allerdings auch in Nagios lediglich optional. Für den reinen Überwachungsbetrieb sind sie nicht notwendig.
Für eine der kommenden Releases ist laut Website [5] immerhin eine Dependency View geplant, die Abhängigkeiten in einer Baumstruktur anzeigt. Version 1.2.5 im Alphastatus zeigt sie bereits (Abbildung 3). Das ist eine sinnvolle Ergänzung, mit der sich unbeabsichtigte Schleifen bei den Abhängigkeiten in Zukunft besser vermeiden lassen.

Abbildung 3: In der kommenden Release 1.2.5 von Nconf ist eine Baumstruktur geplant, die Abhängigkeiten zwischen Hosts und Services geplant.
Ein bereits vorhandenes angenehmes Feature ist die Clone-Funktion. Damit lässt sich ein kompletter Host kopieren. Zu ergänzen sind nur noch die abweichenden Daten wie Hostname oder IP-Adresse, den Rest übernimmt Nconf einfach. Für eine Konfigurationsverwaltung weiterhin sinnvoll ist die eingebaute History-Funktion (Abbildung 4). Sie protokolliert, welche Nagios-Objekte der Administrator wie verändert. So kann er Fehler später leichter aufspüren und beseitigen. Allerdings gibt es noch keine Rollback-Funktion, die das verursachte Übel ungeschehen macht.

Abbildung 4: Die History-Funktion zeigt alle Änderungen, die der Administrator an einem Objekt vorgenommen hat. Leider ist noch nicht die Möglichkeit implementiert, das Geschehene ungeschehen zu machen (Rollback).
Leider unterstützt das GUI nicht die mit Nagios 3 eingeführten rekursiven Gruppen. Seit dieser Version können Nagios-Gruppen selbst Untergruppen enthalten. Laut Nconf-Roadmap ist dieses Feature auch nicht für eine der kommenden Versionen geplant. Der Grund könnte sein, dass diese rekursiven Gruppen schwer in der Weboberfläche abzubilden sein dürften. Da die Untergruppen aber vor allem bei manueller Konfiguration in Textfiles Arbeit sparen, ist ihr Fehlen im Webinterface eigentlich zu verschmerzen.
Per Klick konfigurieren,per Hand verteilen
Nach dem Ende aller Konfigurationsarbeiten genügt ein Klick auf den Link »Generate Nagios config«, und das System erzeugt die Konfigurationsdateien. Jetzt kommt das anfangs auf den Server kopierte Nagios-Binary ins Spiel. Denn Nagios besitzt eine eingebaute Funktion für einen Config-Check.
Das Nconf-Webinterface startet dazu das Kommando »nagios -v nagios.cfg« auf dem Server, das die erstellte Nagios-Konfigurationsdatei auf Fehlerfreiheit prüft. Das Ergebnis ist ebenfalls im Webinterface ersichtlich. Nun ist sicher, dass der Nagios-Server mit der neuen Konfiguration sauber durchstartet. Im Outputverzeichnis des Nconf-Servers entsteht am Ende eine TGZ-Datei mit der Konfiguration, die der Admin noch in das Zielverzeichnis seiner Server entpackt.
Für diese Aufgabe stellen die Entwickler in ihrem Wiki ein Beispiel bereit [6], das den Umweg über einen Webserver erfordert. In der Praxis dürfte es dem Erfahrenen nicht schwer fallen, mit einem Skript die Konfigurationen per SSH zu verteilen und dann die entfernten Nagios-Server gleich durchzustarten. Aber angenehmer und zum bisher verwirklichten Komfort der Software passend wäre eine direkt in ihr Webinterface integrierte Lösung, mit der sich die Konfiguration auf Knopfdruck verteilen ließe.
Arbeit vergeben …
Eine große Stärke von Nagios ist Distributed Monitoring (Abbildung 5). Dabei leitet ein Server, der eine aktive Überwachung ausführt – beispielsweise einen HTTP-Check auf die Verfügbarkeit einer Website -, das Ergebnis an einen anderen Server weiter. Dieser empfängt das Check-Ergebnis und integriert es als so genannten Passive-Check in die Überwachung. So teilen sich bei hoher Belastung mehrere Server die Arbeit, obwohl alle Ergebnisse wieder in einer zentralen Konsole zusammenlaufen. Denkbar ist mit dieser Funktion, einen Dienst aus verschiedenen Perspektiven zu überwachen, zum Beispiel sowohl aus dem internen LAN als auch von einem entfernten Satellitensystem aus.

Abbildung 5: Betreiber großer Netzwerke setzen oft verteiltes Monitoring ein. Nconf erleichtert hier die Arbeit erheblich, da es Konfigurationsdateien erstellt, die dann nur noch auf die Server zu verteilen sind.
So praktisch diese Funktion ist, so kompliziert ist sie allerdings zu konfigurieren. Zuerst richtet der Admin auf dem aktiven Server, der die Überwachung wirklich ausführt, einen Check ein. Dann benötigt auch der passive Server, der nur das Ergebnis empfängt, eine entsprechende Direktive, damit er das Check-Ergebnis auch entgegennimmt. Trotzdem unterscheiden sich beide Konfigurationen leicht, sodass er sie nicht einfach auf den anderen Server kopieren darf. Letztlich bedeutet doppeltes Monitoring also, dass der Admin alle Objekte auch doppelt konfiguriert.
Genau in diese Bresche springt Nconf, denn es generiert optional zu einer aktiven Konfiguration automatisch auch den passiven Teil. Um das Ganze in der Konfigurationslogik abzubilden, benutzt Nconf zwei neue Objekttypen innerhalb seiner Datenbank: Der so genannte Collector repräsentiert den aktiven Server, der alle Überwachungen ausführt. Sein Gegenstück, der Monitor, übernimmt die Rolle des Servers, der nur passiv die Ergebnisse eines anderen Servers empfängt.
… und zurücklehnen
Durch den Collector ist es nun möglich, in der Weboberfläche zu entscheiden, wo die konfigurierte Überwachung stattfinden soll. Dazu ordnet der Anwender einen Nagios-Host einem konfigurierten Collector zu. Später erfolgen die Überwachungen dieses Hosts auf dem eingestellten Collector.
Bei der Generierung der eigentlichen Konfigurationsdatei für Nagios erstellt Nconf dann nicht nur ein eigenes Set für jeden Collector, sondern auch die entsprechende passive Konfigurationsdatei für die Monitore. Das erspart dem Admin einiges an Zeit: Er braucht die Direktiven nicht mehr zu implementieren. Vor allem fällt die Fehlersuche weg, denn die doppelte Konfiguration mit leichten Änderungen zieht normalerweise Flüchtigkeitsfehler nach sich.
An solchen Erleichterungen merkt man, dass Nconf aus der Praxis eines großen Unternehmens heraus entstanden ist. Die Entwickler berücksichtigen die Bedürfnisse in großen Umgebungen durch Features für verteilte Umgebungen oder das Klonen bereits konfigurierter Hosts. Zu diesen auf Erfahrung beruhenden Vorzügen von Nconf gehören auch die Vielfalt der Login-Optionen und die Klarheit der dafür zuständigen Konfigurationsdatei und ihrer Variablen, für die es kaum weiterer Dokumentation bedarf.
Fazit: Senkrechtstarter
Unterm Strich stellt sich Nconf als eines der besten grafischen Konfigurationstools für Nagios heraus. Es zeigt kaum gravierende Schwächen. Lediglich an einigen Stellen wünscht sich der Anwender, dass die Entwickler noch etwas weiter gegangen wären. Auf der anderen Seite ist die vorliegende Version 1.2.4-0 die erste veröffentlichte Release und dafür eigentlich hervorragend gelungen. Da sich alle Klassen und Attribute des Systems im Webinterface ändern lassen und das Design in Templates realisiert ist, kann jeder Admin Nconf einfach auf seine eigenen Bedürfnisse maßschneidern. Das erleichtert den Einsatz in größeren Unternehmen ebenfalls.
Für die kommenden Releases sind vielversprechende Features geplant. Neben dem erwähnten Dependency Tree soll es auch einen Importer für bereits bestehende Nagios-Konfigurationen geben. Da durch diese Funktion der manuelle Aufwand beim Übertragen entfällt, dürfte das einigen Interessenten den Umstieg von einer Konfigurationsverwaltung per Hand zu Nconf erleichtern.
Um das Ausprobieren zu erleichtern, befindet sich auf der Heft-DVD der DELUG-Ausgabe des Linux-Magazins ein VMware-Image, das sowohl Nagios als auch Nconf enthält. (ake)
|
Infos |
|---|
|
[1] Nconf: [http://nconf.sourceforge.net] [2] Nagios QL: [http://www.nagiosql.org] [3] Lilac: [http://www.lilacplatform.com] [4] Quickstart Guide:[http://apps.sourceforge.net/mediawiki/nconf/index.php?title=Quick-start_guide] [5] Geplante Features:[http://apps.sourceforge.net/mediawiki/nconf/index.php?title=Upcoming] [6] Konfiguration verteilen:[http://apps.sourceforge.net/mediawiki/nconf/index.php?title=Configuration_options#Config_deployment] |







