Erkennung von Status und Erreichbarkeit von Netzwerk-Hosts


Überwachung von "down" oder "nicht erreichbaren" Hosts

Die Hauptaufgabe von Nagios besteht in der Überwachung von Diensten, die von Devices oder Hosts im Netzwerk zur Verfügung gestellt werden. Es sollte offensichtlich sein, dass wenn ein Host oder Device im Netzwerk "down" ist, auch alle Dienste dieses Hosts mit ihm "down"gehen.

Um dieses zu erkennen, versucht Nagios zu überprüfen ob der Host auf dem der Dienst läuft auch erreichbar ist, sobald eine Dienstüberprüfung einen "nicht-OK"-Status zurückgibt.
Normalerweise macht Nagios dies indem es versucht den Host zu pingen und schaut, ob der Host eine Antwort schickt oder nicht.
Falls der Host-Überprüfungs-Befehl einen "nicht-OK"-Status zurückgibt, nimmt Nagios an, dass ein Problem mit dem gesamten Host und allen damit verbundenen Diensten aufgetreten ist. Nagios "blockiert" in dieser Situation alle aufkommenden Dienst- Alarmierungen für Dienste die auf diesem Host laufen und informiert den entsprechenden Kontakt, dass der Host "down" oder nicht erreichbar ist.
Falls der Host-Überprüfungs-Befehl einen "OK"-Status, erkennt Nagios, dass der Host erreichbar ist, nur ein Problem mit dem zu überprüfenden Service vorliegt und sendet eine Alarmierung an den entsprechenden Kontakt für diesen Dienst.

Lokale Hosts

"Lokale" Hosts sind Hosts, die im gleichen Netzwerk-Segment läuft wie der Host auf dem Nagios läuft; es liegen keine Router oder Firewalls zwischen ihnen. Abbildung 1 zeigt ein Beispiel solch eines Netzwerk-Layouts. Auf Host A läuft Nagios und überwacht alle anderen Hosts und Router, die das Diagramm beschreibt. Die Hosts B, C, D, E und F sind in Beziehung zu Host A als "lokale" Hosts zu sehen.

Die <parent_hosts>-Option in der Host-Definition für diese "lokalen" Hosts sollte leer bleiben, da diese keinen Verbindung zu einem "Eltern-Host" haben.

Überwachung lokaler Hosts

Die Überwachung von lokalen Hosts ist absolut simpel. Abgesehen von jemandem, der ausversehen (oder absichtlich) das Netzwerkkabel aus einem Deiner Hosts zieht, kann nicht allzuviel passieren damit ein lokaler Host nicht mehr erreichbar ist. Es gibt keine Router oder externe Netzwerke zwischen dem Host der die Überwachung vornimmt und dem zu überwachenden Host in dem lokalen Netzwerk.

Wenn Nagios überprüfen muss, ob ein lokaler Host "alive" ist oder nicht, wird es einfach den "host check command" - den Host-Überwachungs-Befehl für diesen Host ausführen. Falls dieser Befehl einen "OK"-Status zurückgibt, nimmt Nagios an, dass dieser Host "up" sei. Falls dieser Befehl irgendeinen anderen Statuslevel zurückgibt, nimmt Nagios an, der Host sei "down".

Abbildung 1.

Remote Hosts

"Remote Hosts" sind Hosts, die in einem anderen Netzwerksegment, als der Host auf dem Nagios läuft, stehen. In der Abbildung oben sind die Hosts G, H, I, J, K, L und M als "remote" in Verbindung zu Host A zu bezeichnen.

Bitte beachte das einige Hosts "weiter weg" sind, als andere. Hosts H, I und J sind einen "Hop" weiter weg von Host A als Host G (der Router) selbst ist. Aus dieser Sicht können wir eine Abhängigkeit der Hosts voneinander konstruieren, wie in Abbildung 2 dargestellt. Dieses Baumdiagramm hilft und bei der Entscheidung, wie Nagios zu konfigurieren ist.

Die <parent_hosts>-Option in der Host-Definition für einen "remote" Host sollte der Kurzname des Hosts direkt darüber in dem Baumdiagramm (wie in Abbildung 2 gezeigt) sein. Der "parent Host" von Host H ist z.B. Host G. Der parent Host von Host G wiederum ist Host F. Host F hat allerdings keinen parent Host, da er sich in dem gleichen Netzwerksegment wie Host A befindet - Host F ist ein lokaler Host.

Abbildung 2.

Überwachung von Remote Hosts

Die Überprüfung von remote Hosts ist ein bisschen komplizierte als die von lokalen Hosts. Wenn Nagios einen Dienst auf einem remote Host nicht überprüfen kann, muss es erst erkennen, ob der remote Host "down" ist oder ob er "nicht erreichbar" ist. Z.B. weil ein externes Netzwerk auf dem Weg zum remote Host ausgefallen ist.
Zum Glück erlaubt die <parent_hosts>-Option Nagios genau dies zu tun.

Falls der Host-Überprüfungs-Befehl für einen remote Host einen "nicht-OK"-Status zurückgibt, wird Nagios durch den "Abhängigkeits-Baum" gehen bis es die Spitze erreicht, oder ein parent Host einen "OK"-Status zurückgibt.
So kann Nagios erkennen, ob das auftretende Dienstproblem aufgrund eines ausgefallenen Hosts, Netzwerk-Links auftritt oder nur ein Dienstproblem ist.

DOWN ggn. UNREACHABLE Benachrichtigungen

Ich bekomme viele eMails von Personen, die fragen, warum Nagios auch Benachrichtigungen über nicht erreichbare Hosts sendet. Die Antwort ist, weil sie es so konfiguriert haben. Falls die Benachrichtigung über nicht erreichbare Hosts abgeschaltet werden soll, muss das notification_options-Argument in den Host-Definitionen so geändert werden, das es nicht die u-Option (unreachable) enthält.
Mehr informationen hierüber sind in der FAQ zu finden.