Passive Dienst-Überprüfungen


Einleitung

Eines der Features von Nagios ist es, dass es Ergebnisse von Dienst-Überprüfungen von externen Applikationen entgegennehmen kann. Dienst-Überprüfungen, die von externen Applikationen ausgeführt und die Ergebnisse an Nagios übermitteln, werden passive Dienst-Überprüfungen genannt. Passive Dienst-Überprüfungen bilden das Gegenstück zu aktiven Dienst-Überprüfungen, welches Überprüfungen sind, die von Nagios initiiert werden.

Was macht passive Überprüfungen erforderlich?

Passive Überprüfungen sind sinnvoll, um die Dienste zu überwachen, die

Wie funktionieren passive Überprüfungen?

Der einzige wirkliche Unterschied zwischen aktiven und passiven Überprüfungen ist, dass aktive Überprüfungen direkt von Nagios initiiert werden, während passive Überprüfungen von externen Applikationen durchgeführt werden.
Hat eine externe Applikation eine Dienste-Überprüfung durchgeführt (entweder aktiv oder indem sie ein synchronen Ereignis wie eine SNMP-Trap oder einen Sicherheits-Alarm erhalten hat), übergibt sie die Ergebnisse der Überprüfung über die Datei für externe Befehle (external command file) an Nagios.

Wenn Nagios das nächste Mal den Inhalt der Datei für externe Befehle bearbeitet, wird es die Ergebnisse aller passiven Dienst-Überprüfungen in eine Queue um sie später zu verarbeiten. Die gleiche Queue wird von Nagios auch genutzt, um die Ergebnisse der aktiven Überprüfungen für eine spätere Verarbeitung zu speichern.

Nagios führt periodisch einen "service reaper event" aus, der die Ergebnis-Queue der Dienst-Überprüfungen analysiert und verarbeitet. Jedes Ergebnis einer Dienst-Überprüfung, egal ob die Überprüfung aktiv oder passiv durchgeführt wurde, wird in der gleichen Art und Weise verarbeitet. Die Logik der Dienst-Überprüfungen ist für jede der beiden Arten exakt die gleiche. Dies ermöglicht eine nahtlose Methode um mit den Ergebnissen von aktiven und passiven Dienst-Überprüfungen umzugehen.

Wie übermitteln externe Applikationen Ergebnisse von Dienst-Überprüfungen?

Externe Applikationen können die Ergebnisse von Dienst-Überprüfungen an Nagios übermitteln, indem sie einen externen PROCESS_SERVICE_CHECK_RESULT-Befehl in die Datei für externe Befehle schreiben.

Das Format des Befehls lautet wie folgt:

[<timestamp>] PROCESS_SERVICE_CHECK_RESULT;<host_name>;<description>;<return_code>;<plugin_output>

wobei...

Man beachte, das es notwendig ist den entsprechenden Dienst in der Objekt-Konfigurationsdatei zu konfigurieren, wenn man Überprüfungs-Ergebnisse an Nagios übermitteln will! Nagios wird alle Ergebnisse für Dienste ignorieren, die konfiguriert wurden, nachdem Nagios das letzte Mal (neu) gestartet wurde.

Falls man für einen bestimmten Dienst nur passive Ergebnisse erhalten und keine aktiven Überprüfungen initiieren lassen möchte, muss man nur die active_checks_enabled-Option der Dienst-Definition auf "0" setzen. Dies hindert Nagios daran für den angegebenen Host aktiv Überprüfungen auszulösen. Man muss sicherstellen, dass die passive_checks_enabled-Otion aus der Dienst-Definition auf "1" gesetzt ist. Falls dies nicht der Fall ist, wird Nagios keine passiven Ergebnisse für diesen Dienst verarbeiten!

Ein Beispiel-Shell-Skript um passive Überprüfungs-Ergebnisse an Nagios zu übermitteln, ist der Dokumentation unter volatile Dienste beigefügt.

Passive Überprüfungs-Ergebnisse von einem entfernten Host übermitteln

Falls sich die Applikation, die passive Überprüfungs-Ergebnisse an Nagios senden will, auf dem gleichen Host wie Nagios installiert wurde, kann diese die Ergebnisse einfach direkt in die Datei für externe Befehle schreiben, wie weiter oben beschrieben. Applikationen, die nicht auf dem gleichen Host wie Nagios installiert wurden, können dies nicht so einfach. Um die Ergebnisse von passiven Dienst-Überprüfungen von einem entfernten Host an den Server mit der Nagios-Installation zu senden, hat Ethan Galstad das nsca-Addon entwickelt. Das Addon besteht aus einem Daemon, der auf dem Server mit der Nagios-Installation läuft und aus einem Client, der auf dem entfernten Host ausgeführt wird. Der Daemon wartet auf Verbindungen von entfernten Hosts, führt ein paar grundlegende Validierungen des übermittelten Ergebnisses aus und schreibt das Ergebnis direkt in die Datei für externe Befehle (wie zuvor beschrieben).
Weitere Informationen über das nsca-Addon sind hier zu finden...

Aktive und passive Dienst-Überprüfungen gemeinsam benutzen

Falls Sie kein verteiltes Überwachungs-Setup mit einem zentralen Server aufbauen, der nur passive Dienst-Überprüfungen entgegennehmen soll und keine aktiven Überprüfungen ausführen soll, werden Sie unter Umständen passive und aktive Dienst-Überprüfungen parallel in dem Setup benutzen.
Wie zuvor beschrieben sind aktive Überprüfungen vor allem für Dienste geeignet, die periodisch Überprüfungen (Verfügbarkeit eines FTP oder Web-Servers, etc.) ausführen können, während sich passive Überprüfungen besser eignen, um in variablen Intervallen eingehende Events (Sicherheits-Alarme, etc.) zu bearbeiten.

Das untere Bild zeigt wie aktive und passive Dienst-Überprüfungen gemeinsam eingesetzt werden können, um Netzwerk-Ressourcen zu überwachen (ein Klick auf das Bild zeigt eine grössere Version).

Die orange Blase auf der rechten Seite des Bildes ist eine Dritt-Applikation, die passive Dienst-Überprüfungen in die Datei für externe Befehle von Nagios einfügt. Eine der Applikationen läuft auf dem gleichen Host wie Nagios, um direkt in die Datei für externe Befehle zu schreiben. Die andere Applikation läuft auf einem entfernten Host und nutzt das NSCA-Client-Programm und den NSCA-Daemon um die Ergebnisse der passiven Dienst-Überprüfungen an Nagios zu übermitteln.

Die weissen Wolken im Überwachungs-Server stellen aktive Dienst-Überprüfungen dar, die von Nagios direkt ausgeführt werden. Es wird gezeigt, wie lokale Ressourcen (Festplattenkapazität, etc.), "öffentliche" Ressourcen auf entfernten Hosts (z.B. Web-, FTP-Server, etc.) oder "private" Ressourcen auf entfernten Hosts (entfernte Festplattenkapazität, Prozessor-Last, etc.) überwacht werden können.
In diesem Beispiel wird die private Ressource auf dem entfernten Host durch das nrpe-Addon, überprüft, indem es ein lokales Plugin auf dem entfernten Host ausführt.