Netzwerküberwachung mit Nagios

Seite 6: Remote Plug-ins

Inhaltsverzeichnis

Auf Servern lässt sich zwar SNMP einrichten, um Betriebsparameter wie Systemlast oder Festplattenfüllstand zu übermitteln. Doch Nagios bringt auch einen eigenen Mechanismus dafür mit, den Nagios Remote Plug-in Executor (NPRE). Das ist ein Daemon, der auf Anfrage des Nagios-Servers ein lokales Plug-in ausführt und das Ergebnis zurückgibt. NRPE ist samt Plug-ins auch für Microsoft Windows verfügbar und einer der Wege, dieses Betriebssystem mit Nagios zu überwachen. Dazu etwas später mehr.

Zunächst muss auf dem zu überwachenden Host NRPE und die benötigten Plug-ins installiert werden. Hat man die Plug-ins und NRPE selbst gebaut, kann man die entsprechenden Dateien auf den Host kopieren, dies wird aber nur von Erfolg gekrönt sein, wenn die Linux-Version des Hosts nicht zu sehr von der des Nagios-(Build-)Servers abweicht. Da Abwärtskompatibilität ein steiniges Feld ist, macht man sich das Leben leichter, wenn man einigermassen aktuelle NPRE-Versionen als Pakete installieren kann. Dies ist für Suse 10.1 und andere aktuelle Linux-Distributionen der Fall. Ein weiterer Vorteil ist, dass die Pakete typischerweise Konfigurationsdateien als Vorlage mitbringen. Ist man auf ein neues Plug-in Feature angewiesen oder möchte man eine ältere Distribution monitoren, bleibt einem meist nur der Compiler, um an eine aktuelle Version zu kommen.

Jetzt wieder zurück zu dem Beispiel Suse 10.1: Hier werden die Pakete nagios-nrpe und nagios-plugins benötigt, die bei der Download-Version aus dem Internet geholt werden müssen. Dazu müssen noch einge Pakete installiert werden, um die Abhängigkeiten aufzulösen, namentlich perl-Crypt-DES, perl-Digest-HMAC, perl-Net-SNMP und xinetd. Nach der Installation muss in der Datei /etc/xinetd.d/nagios-nrpe disable=no und eventuell only_from=<Nagios-Server IP> eingetragen werden. In /etc/services fehlt die Zeile

nrpe 5666/tcp # NRPE

Schließlich veranlasst der Aufruf xinetd restart xinetd, die neue Konfiguration zu lesen.

Da NRPE aus Sicherheitsgründen keine Parameter zu den Checks annehmen sollte, muss der Check vollständig auf dem Host in der Konfigurationsdatei /etc/nagios/nrpe.cfg definiert werden. Das könnte für den Test einer Partition hda1 so aussehen:

command[disk1]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda1

Über den Namen in eckigen Klammern ruft das Plug-in check_nrpe vom Nagios-Server aus diesen Check auf:

check_nrpe -H <IP-Adresse> -c disk1

In checkcommands.cfg kann der Nagios-Admin ihn wie jeden anderen Check benutzen:

define command{  command_name check_nrpe  command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$} 

Schließlich trägt er den zu überwachenden Host und Service in die Konfiguration ein:

define service{   host_name           webserver   service_description DISK:hda1   check_command       check_nrpe!disk1...

Für Microsoft Windows stellt das Projekt NRPE_NT den NRPE bereit. Das ZIP-Archiv entpackt man in ein passendes Verzeichnis und installiert NRPE auf der Kommandozeile mit \<Pfad>\bin\NRPE_NT.exe -i als Dienst. Dazu sind Administrator-Rechte erforderlich. Passende Plug-ins gibt es bei NagiosExchange unter Categories/Check Plug-ins, unter anderem das Paket "Basic NRPE_NT Plug-ins". Das bin-Verzeichnis aus diesem Archiv entpackt man ins bin-Verzeichnis des NRPE_NT-Verzeichnisses und überschreibt dabei einfach die alte Konfigurationsdatei nrpe.cfg.

Danach kommentiert man den Parameter blowfish_secret aus, trägt in allowed_hosts die Adresse des Nagios-Servers ein und passt in den "Command Definitions" die Pfade und Parameter an. Anschließend startet ein Admin NRPE über Verwaltung/Dienste in der Systemsteuerung und überprüft den korrekten Start im Ereignisprotokoll.