Pingmon überwacht Netzwerkverbindungen

26. November 2009

Wenn sich die Mitarbeiter in einer Zweigstelle recht häufig wegen Netzwerkausfällen beklagen, ist der Administrator gefragt. Er muss die Netzwerkverbindung überwachen – denn nur wer weiß, wie oft die Verbindung ausgefallen ist und wie lange es dauert, bis sie wieder aktiv ist, kann dem Fehler auf die Spur kommen.

Anstelle nun viel Geld für ein kommerzielles Testprodukt zu investieren oder sich durch Unmengen von Protokolldateien mit Aufzeichnungen über Ping-Versuche zu wühlen, kann man sich ein eigenes Skript erstellen. Es greift auf verschiedene Opensource-Programme zu und kombiniert sie passend. Hier wird eine entsprechende Lösung gezeigt, die den Namen Pingmon trägt.

Das Skript  ist für Abonnenten verfügbar.

Bei Pingmon handelt es sich um ein relativ einfaches Konzept: Dabei wird eine Adresse überprüft, die entweder antwortet – oder auch nicht. Wenn sich der Zustand ändert, erzeugt das Skript eine E-Mail und einen Eintrag in einer Protokolldatei. Diese Datei zeigt dann an, wann die Verbindung abgebrochen ist und wann sie wieder hochgefahren wurde. Ändert sich der Zustand einer Verbindung von abgebrochen nach verbunden, zeigt das Protokoll aber auch gleich mit an, wie lange die Verbindung unterbrochen war.

Die Syntax von Pingmon ist recht eingängig (allerdings muss man den Befehl auf einer Kommandozeile eingeben – auch wenn das hier mit einem Zeilenumbruch dargestellt wird):

pingmon computername frequency
  email -address log-file [comment]

Dabei sind folgende Konventionen zu beachten:

Beim computername handelt es sich um den Namen oder die IP-Aresse des Geräts, das überwacht werden soll.

Unter frequency wird die Anzahl von Sekunden festgelegt, die zwischen zwei Ping-versuchen gewartet wird.

Mit email-address wird die Adresse angegeben, an die die Benachrichtigung gesendet wird.

Die Bezeichnung für die Protokolldatei, in der alle Modifikationen mitgeschrieben werden, lautet log-file.

Und beim comment handelt es sich um eine optionale Beschreibung (aus einem Wort), was das Skript überwacht.

Wenn der Administrator keine Benachrichtigungen empfangen möchte oder keine Protokolldatei anlegen möchte, braucht er für den betreffenden Parameter nur einen Punkt einzugeben. Es bietet sich an, keine Mails zu empfangen, wenn die Netzwerkverbindung zum betreffenden Gerät sehr häufig abbricht und wiederhergestellt wird. In diesen Fällen ist es sinnvoll, nur den Zustand des Geräts zu verfolgen. Eine Protokolldatei erscheint auch dann verzichtbar, wenn der Administrator einige Aktionen ausführen muss, sobald das Gerät wieder verfügbar wird.

Für seine Aufgabe verwendet Pingmon drei separate Utilities: date.exe, SleepX und Blat. Bei date.exe handelt es sich um eine Portierung des Date-Befehls von Unix. Es liefert ein für Unix typisches Datumsformat. Mit diesen Angaben kann das Skript dann ermitteln, wie lange ein Netzwerkanschluss nicht verfügbar war. Date.exe ist eines von vielen Unix-Werkzeugen, die in der Datei UnxUtils.zip enthalten sind. Diese Datei kann man als Download von unxutils.sourceforge.net herunterladen.

Für die Pausen zwischen den Ping-Versuchen ist SleepX zuständig. Es gehört zum Shell Scripting Toolkit. Dabei handelt es sich um eine Sammlung von Win32-Kommandozeilen-Utilities, die sich mit Hilfe von cmd.exe in Shell-Skripts einbauen lassen. Dieses Toolkit ist über die Website von Bill Stewart zu beziehen.

Für das Versenden der E-Mail-Benachrichtigungen verwendet Pingmon das Tool Blat. Es gilt als ein extrem flexibles und mächtiges Kommandozeilen-basiertes Mail-Tool, das sich recht einfach aufsetzen und verwenden lässt.

Für den Einsatz im Pingmon-Umfeld empfiehlt sich allerdings unbedingt folgender Installationsvorgang: Zuerst ist Blat herunterzuladen. Danach muss der Administrator die Datei Blat.exe in eine Bibliothek im passenden Pfad kopieren. Anschließend muss er auf der Kommandozeile den folgenden Befehl (auf einer Zeile – ohne Zeilenumbruch) eingeben:

blat.exe -install your.mailserver.com you@yourdomain.com

Dabei steht your-mailserver.com und you@yourdomain.com für die Bezeichnung des eigenen SMTP-basierten Mailservers im Unternehmen und die zugehörige Mail-Adresse, an die dann die Benachrichtigungen gesendet werden sollen. Durch diese Art der Installation von Blat werden die entsprechenden Werte in die Registry eingetragen. Damit muss man sie Blat diese Werte nicht mehr bei jedem Aufruf erneut als Parameter mitgeben.

Neben den Einsatz für das Aufdecken und Protokollieren von Netzwerkausfällen hat sich Pingmon in der Praxis Pingmon auch noch als sehr nützlich für viele andere Bereiche erwiesen. Der Autor hat das Tool im Unternehmen auch dazu verwendet, um einige Geräte an entfernten Standorten zu überwachen. Dabei wurde bestimmt, welche Switches ausfallen.

Um beispielsweise das Netzwerk einer ganzen Fabrik zu überwachen, wurden mehrere Pingmon-Skripts gestartet, wobei  und dabei wurde für alle Skripts die identische Protokolldatei angegeben wurde. Über eine zeitplangesteuerte Task wurden die Skripts angewiesen, die Protokolldatei jeden Tag an die Administratoren zu senden.

Ein weiteres Einsatzbeispiel für Pingmon ist das Überwachen von Servern, die einen Neustart benötigen oder aber beim Bestimmen der Zeit bestimmt festzustellen, wie lange die Verbindung zu internationalen Standorten besteht.
Pingmon ist über die Download-Seite von NT4Admins zu beziehen. Es ist für Windows-Plattformen ab Windows NT 4.0 geschrieben.

Der Code muss nicht großartig angepasst werden. Doch der Administrator muss date.exe, SleepX und Blat installiert haben, um Pingmon einsetzen zu können.
Zudem gibt es auch die Option – je nach Einsatzziel von Pingmon – dieses Tools weiter auszubauen. Es wäre eventuell sinnvoll, die Protokolleinträge in einer Datenbank abzulegen oder aber man könnte ein Tool wie Traceroute (tracert.exe) starten, wenn ein Gerät nicht mehr angebunden ist.

Bill Aycock/Rainer Huttenloher

Lesen Sie auch