CheckHost ist ein BASH-Shell Skript zur Überwachung der Verfügbarkeit von Netzwerkgeräten und/oder der Internetverbindung. Das Skript basiert auf dem ubuntuusers Ping-Alive Beispiel und wurden mit einem zusätzlichen Parameter für den Hostbezeichner erweitert, der die Zuordnung der E-Mail-Benachrichtigungen vereinfacht. Es wurde auch die Protokollierung der ping-Anfragen in dem Verzeichnis /var/log/checkhost hinzugefügt. Die Log-Dateien werden täglich neu erstellt und älter als 30-Tage gelöscht. Zum Versenden der E-Mail-Benachrichtigungen wird standardmässig der sendmail-Befehl benutzt, der zum Beispiel von sSMTP und Postfix verwendet wird (weitere MTA’s wurden nicht getestet).
Skript-Ablauf

Das Skript sendet in regelmäßigen Abständen eine ping-Anfrage an den im ersten Parameter angegebenen Host. Wenn die Verbindung zum Host abgebrochen oder wiederhergestellt wurde, schickt das Skript eine E-Mail-Benachrichtigung an die als den zweiten Parameter übergebenen Adressen. Das Abfrageintervall ist von der Einstellung des Cronjobs während der Installation abhängig und kann beliebieg angepasst werden.
Die E-Mail-Benachrichtigungen werden mit dem Befehl sendmail verschickt. Bei dem Mail Transfer Agent (MTA) Postfix ist es ein eigenständiges Tool. sSMTP erstellt bei der Installation eine sendmail-Verknüpfung auf sich selbst, so dass eine zusätzliche Installation von Postfix nicht notwendig ist. Um die E-Mails zu senden ist das Ressourcen schonende sSMTP die bessere Wahl (zum Beispiel auf einen Raspberry Pi).
Voraussetzungen
Für die Ausführung des Skripts sind folgende, installierte Software vorausgesetzt:
- Linux/UNIX Betriebssystem
- BASH Shell
- Postfix, sSMTP oder ein anderer, äquivalenter Mail Transfer Agent
Installation
- CheckHost herunterladen und wenn notwendig auf das Zielgerät übertragen.
- Die heruntergeladene GZIP-Archiv-Datei entpacken:
$ cd /home/$USER/Downloads $ tar -xvzf checkhost_1.0.1.tar.gz $ cd checkhost_1.0.1
Der Ordner checkhost_1.0.1 enthält folgende Dateien:
- checkhost.jpg – Skript Flussdiagramm
- checkhost.tar.gz – Archiv mit dem Skript und der README Datei
- README – Skriptbeschreibung und Installationsanleitung
- Die Archiv-Datei checkhost.tar.gz nach /etc entpacken:
$ sudo tar -xvzf checkhost.tar.gz -C /etc
- Die Zugriffsberechtigungen setzen:
$ sudo chmod -R 755 /etc/checkhost
- Den Eigentümer-Benutzer und die Eigentümer-Gruppe ändern:
$ sudo chown -R root:root /etc/checkhost
- Crontab mit root-Rechten öffnen:
$ sudo crontab -e
- Die Zeile nach dem folgenden Muster hinzufügen:
*/5 * * * * /etc/checkhost/checkhost.sh host recipients [hostname] > /dev/null 2>&1
host – IP-Adresse oder Domäne
recipients – eine oder mehrere E-Mail-Adressen für die Benachrichtigungen. Mehrere Adressen werden mit Komma getrennt und in einfache Einführungsstriche eingeschlossen (‘egon@gmx.de,ziggi@arcor.de’)
hostname – (optional) der Name oder eine Beschreibung des Hosts. Dieser wird so in den E-Mails für eine bessere Zuordnung gennant. Namen mit Leerzeichen sollen in einfache Anführungszeichen eingeschlossen werden.
Möchte man weitere Hosts überwachen, einfach eine zusätzliche Zeile mit der Host-IP und gegebenfalls einem anderen Hostnamen in die Crontab hinzufügen.
Ausführung
Das checkhost.sh Skript wird je nach cronjob-Einstellungen regelmäßig oder manuell ausgeführ. Solange die Verbindung zum Host existiert, wird nur die ping-Ausgabe in die Log-Datei geschrieben. Ist der Host nicht mehr erreichbar, wird zusätzlich eine E-Mail-Benachrichtigung verschickt (grün unterstrichen ist der als dritter Parameter angegebene Hostbezeichner).

Solange der Host auf die ping-Anfragen nicht antwortet, werden nur die Log-Informationen geschrieben. Beim Wiederaufbau der Verbindung wird zusätzlich eine E-Mail-Benachrichtigung verschickt. Sie enthält unter anderen das Datum und die Uhrzeit, wann der Host nicht mehr erreichbar und wie lange er offline war.

Test
Zuerst die Log-Datei (/var/log/checkhost/checkhost-xxx.xxx.xxx.xxx_YYYY-MM-DD.log) überprüfen, ob regelmäßig nach dem vorgegebenen Intervall die ping-Ausgabe geschrieben wird.
Bei einer Überwachung der Internetverfügbarkeit reicht es die Internetverbindung zu trennen. Zum Beispiel durch das Abziehen des LAN-Kabels, WLAN Abschaltung oder das Deaktivieren der Internetverbindung in der Netzwerkkonfiguration.
Bei Netzwerkgeräten kann entweder wie bei Internet vorgegangen oder nur das betroffene Gerät vom Netzwerk getrennt oder ausgeschaltet werden.
Nach dem im Cronjob vorgegebenen Zeitintervall die Verbindung wieder herstellen und die E-Mail-Benachrichtigung abwarten.
Bei einer Internetverfügbarkeitsüberwachung, anders als bei Netzwerkgeräten, wird die E-Mail-Benachrichtigung über die Host-Verbindungstrennung erst empfangen wenn die Verbindung wieder hergestellt wurde. Logischerweise kann ohne einen Internetzugriff keine E-Mail verschickt werden.
War diese Seite für dich informativ? Hat sie dir gefallen und geholfen?
Dann unterstütze die Weiterentwicklung mit einer kleinen Spende!
Die Spenden werden für die Lizenzen sowie neue Hard- und Software verwendet, die für weitere Projekte auf dieser Webseite eingesetzt werden. Die Werbung alleine deckt gerade mal die Server Kosten.
0 Kommentare zu “CheckHost – Netzwerkverbindungen überwachen”