BOINC-Client mit monit überwachen

Aus Rechenkraft
(Weitergeleitet von Boinc mit monit überwachen)
Zur Navigation springen Zur Suche springen

Einleitung

Mit der Linux-Software monit lässt sich die Aktivität und Verfügbarkeit vom BOINC-Client überwachen. Sollte der Client abstürzen, oder man hat vergessen ihn wieder manuell zu aktivieren, so wird dieser automatisch neu gestartet und optional eine Benachrichtigung per Mail versendet.

Mit monit lassen sich auch andere Prozesse wie SSH, Apache, MySQL udg. überwachen. Weitere Informationen und die Dokumentation sind auf der Webseite von monit zu finden.

Auf einem Debian 8 als Benutzer root (sudo - root) die folgenden Schritte durchführen:

monit installieren

apt-get update
apt-get install monit

Automatischen Start von monit aktivieren

nano /etc/default/monit

Die Einstellung START ist auf den Wert yes zu setzen, was im Standard bereits der Fall sein sollte.

START=yes

Verzögerten Start von monit einrichten

nano /etc/monit/monitrc

Am Dateianfang die existierenden Zeilen

set daemon 120            # check services at 2-minute intervals
# with start delay 240    # optional: delay the first check by 4-minutes (by

ändern in

set daemon 600            # check services at 10-minute intervals
  with start delay 300    # optional: delay the first check by 5-minutes (by

Die überwachten Prozesse werden alle 10 Minuten überprüft, die erste Prüfung jedoch um 5 Minuten verzögert.

Eine Konfigurationsdatei für boinc-client erstellen

nano /etc/monit/conf.d/boinc-client

Folgendes in der Datei speichern

check process boinc with pidfile /var/run/boinc.pid
  start program = "/etc/init.d/boinc-client start" with timeout 60 seconds
  stop  program = "/etc/init.d/boinc-client stop" with timeout 60 seconds
  if failed host 127.0.0.1 port 31416 type tcp with timeout 20 seconds then restart
  if 3 restarts within 4 cycles then unmonitor
  • Es wird der Prozess boinc (der Prozess hinter dem Daemon boinc-client) mit der dazugehörigen PID-Datei überwacht
  • Auf das Ende vom Start- und Stopvorgang des Daemons wird max. 1 Minute gewartet
  • Besteht mit einer max. Wartezeit von 20 Sekunden keine Verbindung auf den lokalen TCP-Port 31416, welcher vom BOINC-Client geöffnet wird, so wird der Daemon neu gestartet
  • Waren 3 Neustarts des Daemons innerhalb von 4 Überwachungsdurchläufen notwendig, so wird die Überwachung des Daemons deaktiviert

monit starten

/etc/init.d/monit restart

Logdatei von monit

Informationen und Statusmeldungen werden in der Datei

/var/log/monit.log

aufgezeichnet.

Benachrichtigung per Mail

Neben dem automatischen Neustart von Daemons kann monit optional auch über Ereignisse per Mail benachrichtigen.

nano /etc/monit/conf.d/boinc-client

Die bestehende Datei am Dateianfang erweitern.

set mailserver MAILSERVER port PORT
  username "BENUTZER" password "PASSWORT"
  using sslauto with timeout 20 seconds
set alert ZIELMAIL
  • MAILSERVER, PORT: SMTP-Server (z.B. smtp.gmail.com) und Port (z.B. 465)
  • BENUTZER, PASSWORT: Anmeldedaten am SMTP-Server
  • ZIELMAIL: an diese Adresse werden die Alarmbenachrichtungen versendet (z.B. meinemail@meinprovider.net)

Versendet wird eine Mail mit dem Schlüsselwort alert.

if total cpu < 10% for 2 cycles then alert
if 2 restarts within 4 cycles then alert

Test der Konfiguration

Nachdem in der o.g. Lodatei die Ausgabe

Monit start delay set -- pause for 300s

protokolliert wurde, wird der überwachte Daemon boinc-client manuell beendet

/etc/init.d/boinc-client stop

Einige Zeit später meldet monit in der Logdatei

error    : 'boinc' process is not running
info     : 'boinc' trying to restart
info     : 'boinc' start: /etc/init.d/boinc-client

Die Ausgabe von

ps aux | grep -i boinc

sollte zeigen, dass der BOINC-Client wieder aktiv ist.

Zusätzlich sollte nach 10 Minuten in der Logdatei

info     : 'boinc' process is running with pid 4354

ausgegeben werden.

Als weiterer Test wird in der Datei /etc/monit/conf.d/boinc-client der Port 31416 in 31417 geändert und monit aufgefordert die Konfigurationsdateien neu einzulesen

/etc/init.d/monit reload

In der Logdatei wird

error    : 'boinc' failed, cannot open a connection to INET[127.0.0.1:31417] via TCP
info     : 'boinc' trying to restart
info     : 'boinc' stop: /etc/init.d/boinc-client
info     : 'boinc' start: /etc/init.d/boinc-client

gemeldet. Zusätzlich erhält man beim Testen der Konfiguration eine Benachrichtigung per Mail.

Den Port wieder auf den korrekten Wert 31416 ändern und ein monit reload durchführen.