Watchdog implementieren/aktivieren

Unter einem Watchdog lässt sich verallgemeinert eine Komponente verstehen, die die Funktion anderer Komponenten überwacht. Wird dabei ein Fehler erkannt, wird dies entsprechend signalisiert bzw. es wird eine definierte Anweisung eingeleitet, um so das bestehende Problem zu beseitigen.

Soll der Raspberry Pi 2 Modell B einen sicheren Betrieb von 24/7 gewährleisten, dann lohnt es sich an dieser Stelle einen Blick auf den eingebauten Hardware Watchdog des Raspberry zu werfen.

Der Hardware-Watchdog ist als eigenes Device (Gerät) implementiert, das man unter /dev/watchdog finden kann. Wurde dieses Device einmalig beschrieben, möchte es von da an alle 60 Sekunden erneut beschrieben werden. Entsteht eine Pause von mehr als 60 Sekunden zwischen zwei Schreibvorgängen, führt der Watchdog einen Hardwarereset durch. Das regelmäßige Beschreiben von /dev/watchdog kann ein Watchdog-Daemon übernehmen. Der kann verschiedene Parameter des Systems überwachen, wie z. B. die Systemlast, den verfügbaren freien Speicher, die Temperatur oder die Erreichbarkeit des Netzwerks. Er beschreibt das Watchdog-Gerät regelmäßig, solange die vorgegebene Bedingung nicht zutrifft. Wird die Bedingung erreicht (etwa weil die Systemlast den festgelegten Wert auf Dauer überschreitet), unterbleibt der Schreibvorgang auf das Watchdog-Gerät. Ist dies länger als 60 Sekunden der Fall, erfolgt ein Reset.

Nun sind allgemein Parameter wie Speicher oder Prozessorlast nur bedingt hilfreich, denn der Rechner soll ja eine ganz bestimmte Aufgabe erfüllen. Und was nützen freier Speicher und geringe Systemlast, wenn der wesentliche Dienst bzw. Prozess sich aufgrund eines Fehlers längst verabschiedet hat? Hierzu ist eine andere Option des Watchdog-Daemons hilfreich, nämlich das Überwachen einer (oder auch mehrerer) Datei(en). Der Watchdog-Dienst prüft dann regelmäßig, ob es Zugriffe auf eine bestimmte Datei gegeben hat. Diese müssen übrigens nicht innerhalb eines 60-Sekunden-Intervalls erfolgen, sondern können auch durchaus länger auseinanderliegen. Der Watchdog-Daemon kann also beispielsweise regelmäßig überprüfen, ob der letzte Zugriff auf eine Datei nicht mehr als 15 Minuten zurückliegt. Andernfalls löst er über das Watchdog-Device einen Reset aus. Nun muss man nur noch eine Datei finden, die von dem zu überwachenden Dienst garantiert regelmäßig beschrieben wird, wie etwa eine Log-Datei. Vielleicht kann man den Dienst sogar entsprechend konfigurieren oder ergänzen, so dass regelmäßige Schreibvorgänge auf eine festgelegte Datei erfolgen.

Wie funktioniert das nun konkret. Der Hardware-Watchdog ist zwar im Raspberry Pi vorhanden, wird aber standardmäßig nicht verwendet. Deshalb muss er zunächst aktiviert werden:


sudo modprobe bcm2708_wdog
echo "bcm2708_wdog" | sudo tee -a /etc/modules

Damit ist der Hardware-Watchdog aktiviert und einsatzbereit. Man kann ihn zur Kontrolle mit ls -al /dev/watchdog auflisten. Wer testen will, ob der Watchdog auch funktioniert, gibt sudo cat > /dev/watchdog ein und drückt dann einmal [Eingabe]. Nun braucht man nur noch 60 Sekunden warten, ob der Neustart des Gerätes tatsächlich erfolgt.

Der Watchdog-Daemon muss zunächst installiert werden:

 


sudo apt-get install watchdog

Das kann ein wenig dauern. Anschließend kann die Konfigurationsdatei in /etc/watchdog.conf geöffnet werden:

 


sudo nano /etc/watchdog.conf

Diese Datei enthält bereits eine ganze von Einstellungen, die aber (fast) alle auskommentiert (#) sind. Zusätzlich sollten Sie diese beiden vorhandenen Zeilen aktivieren, indem Sie das # am Anfang entfernen: 

 


watchdog-device        = /dev/watchdog
max-load-1 = 24

Nun brauchen Sie den Watchdog-Daemon nur noch mit:

 


sudo /etc/init.d/watchdog start

starten. Dies muss aber nur einmalig unmittelbar nach dem Installieren des Watchdog erfolgen. In Zukunft wird er bei einem Neustart des Rechners automatisch aktiviert. Andere Variante für die Überwachung durch den Watchdog Daemon finden Sie in der manpage.


Hinweis: Um die Watchdog-Funktion später wieder zu deaktivieren, reicht es, den Watchdog-Daemon zu deaktivieren bzw. notfalls zu deinstallieren. Dann erfolgt nach einem Neustart kein initialer Schreibzugriff auf das Watchdog-Gerät mehr, so dass der Hardware-Watchdog gar nicht erst in Gang gesetzt wird.


Vielen Dank an "http://www.gieseke-buch.de/raspberrypi/eingebauten-hardware-watchdog-zur-ueberwachung-nutzen" für die ausführliche Beschreibung der Watchdog Funktion.

Kommentar schreiben

Kommentare: 0