Skip to content
 

Daemon monitoring mit monit

Es gibt einige Dienste auf den meisten Servern, die immer laufen sollten, da von ihnen weitere Dienste abhängig sind. Beispiel: Wenn exim4 mit clamd genutzt wird um Viren zu filtern, verweigert dieser die E-Mailannahme sobald der clamav-Daemon nicht erreichbar ist

Um nun zu vermeiden, dass ein Fehler in einem solchen Daemon die Funktion lange Beeinträchtigt, sollte der Daemon regelmäßig überwacht werden, und falls nötig neugestartet werden. Diese Aufgabe kann monit übernehmen.

Installation

Bei Debian Systemen einfach per apt-get install monit .
Dann die Datei /etc/default/monit anpassen:

# Defaults for monit initscript
# sourced by /etc/init.d/monit
# installed at /etc/default/monit by maintainer scripts
# Fredrik Steen <stone@debian.org>

# You must set this variable to for monit to start
startup=1

# To change the intervals which monit should run uncomment
# and change this variable.
# CHECK_INTERVALS=180

Nun kann man monit mit /etc/init.d/monit start starten, sollte aber zuvor noch passende Konfigurationsdateien anlegen.

Konfiguration

In der gut kommentierten Datei /etc/monit/monitrc werden die Einstellungen vorgenommen. Man sollte am Anfang auf die folgenden Parameter achten:

# alle n Sekunden sollen die Dienste überprüft werden
set daemon  300
set logfile syslog facility log_daemon 

#Mailserver für Benachrichtigungen
set mailserver mail.example localhost
# Absenderadresse der benachrichtigungen
set mail-format { from: admin@example }
# Empfänger für die Benachrichtigungen
set alert admin@example

# optional weitere Konfigurationsdateien einbinden include /etc/monit/Ordner/*.monitrc

Man kann die Konfiguration für die einzelnen Daemons in der /etc/monit/monitrc vornehmen, oder übersichtlicher in eigenen Dateien.

Beispiel für eine Konfiguration zur Überwachung von Clamav/clamd

check process clamd with pidfile /var/run/clamav/clamd.pid 
    start program = "/etc/init.d/clamav-daemon start"
    stop program  = "/etc/init.d/clamav-daemon stop"
    if failed unixsocket /var/run/clamav/clamd.ctl timeout 30 seconds then restart

In der ersten Zeile wird der Regel ein Name gegeben, und auch gesagt wo das Pidfile des Daemon liegt. In der zweiten und dritten Zeile werden die Start- und Stopskripte angegeben, und in der vierten Zeile eine Regel wann clamd neugestartet werden soll. In diesem Fall wenn ein Verbindungsversuch auf dem Unix-Socket /var/run/clamav/clamd.ctl mit einem Timeout von 30 Sekunden fehlschlägt.

Monit bietet eine ganze Reihe weiterer möglicher Abfragen, so dass man für jeden Dienst eine angepasste Regel erstellen kann. Die Dokumentation erläutert die möglichen Konstrukte gut, dort gibt es auch eine breite Auswahl an vorbereiteten Konfigurationsbeispielen für diverse Dienste, welche die Arbeit erleichtern und dem Verständnis hilfreich sind.

2 Kommentare

  1. nodomain.cc sagt:

    Monit…

    Notiz: Monit ausprobieren… damit lassen sich unter Linux laufende Dienste überwachen und ggf. neu starten….

  2. ff sagt:

    So, habs jetzt mal getestet. Macht einen guten Eindruck :-) und läuft jetzt permanent. Danke für den Hinweis.