Howto: monit unter Debian Etch

Posted on the April 12th, 2007 under allgemein by matthias

monit1.pngSoftware kann Fehler haben und bedingt durch diese Fehler abstürzen. Wenn der Absturz schnell bemerkt wird und das Programm neu gestartet werden kann, ist dies nicht unbedingt ein großes Problem.

Was aber, wenn der Programmabsturz mitten in der Nacht geschieht und dadurch ein wichtiger Dienst mehrere Stunden nicht verfügbar ist? Hier kommt monit ins Spiel.

monit ist der beste Freund jedes Linux Administrators. Neben der reinen Überwachung von Diensten und Prozessen können selbige auch bei Bedarf neu gestartet werden. Zur reinen Überwachung von Serverdiensten benutze ich Nagios – das wohl mächtigste Open Source Tool im Monitoringsektor. monit ergänzt sich ganz fabelhaft mit Nagios – erkennt monit die Nichterreichbarkeit oder das Nichtvorhandensein eines Dämons, so wird dieser umgehend neu gestartet.

Zur Installation unter Debian Etch (und auch unter Ubuntu) reicht ein einfaches

aptitude install monit

Danach findet sich die Hauptkonfigurationsdatei unter /etc/monit/monitrc. Am Anfang werden globale Einstellungen definiert.

# Check alle 60 Sekunden durchführen
set daemon  60

# Speicherort des monit Logfiles
set logfile /var/log/monit

# Angabe des Mailservers - mehrere Mailserver mit Komma getrennt angeben
set mailserver 11.11.11.12, 11.11.12.12

# Absenderadresse von Benachrichtungsmails
set mail-format { from: myhost@domain.org }

# Emailadresse, die bei jedem Fehler benachrichtigt wird
set alert admin@domain.org

# Emailadresse, die nur im Notfall benachrichtigt wird
set alert smsalert@smsgateway.de only on { timeout }

Im Anschluss können einzelne Services definiert werden, die überwacht werden sollen. Zusätzlich kann angegeben werden, was wann ausgeführt werden soll. Am Beispiel des OpenSSH Servers soll die Syntax hier erläutert werden.

check process sshd with pidfile /var/run/sshd.pid
start program = "/etc/init.d/ssh start"
stop  program = "/etc/init.d/ssh stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Mit check process sshd wird der Prozessname angegeben, der überwacht werden soll. Dieser legt sein PID-File unter /var/run/sshd.pid ab. Unter start und stop program definiert man den Befehl, der zum Dienststart bzw. -stop ausgeführt werden soll.

In der nächsten Zeile folgt der Test, der im angegebenen Intervall von 60 Sekunden durchgeführt werden soll. In diesem Fall wird Port 22 auf localhost darafhin geprüft, ob dort ein SSH Server läuft. Gibt es entweder keine Antwort auf dem Port oder läuft der Prozess sshd mit dem angegebenen PID-File nicht, so versucht monit den Dienst neu zu starten.

Die letzte Zeile definiert den Zeitpunkt, zu dem der Dienst den Status timeout erreicht und eine Email an die Notfalladresse gesandt wird. In dem angeführten Beispiel geschieht diese Panic Action, wenn fünfmal hintereinander erfolglos versucht wurde, den Dienst neu zu starten.

Ein weiteres Beispiel für die Überwachung von Posfix:

check process postfix with pidfile "/var/spool/postfix/pid/master.pid"
start program = "/etc/init.d/postfix start"
stop program = "/etc/init.d/postfix stop"
if failed host 12.12.13.12 port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout

Abschließend muss nur noch die Variable startup in /etc/default/monit von 0 auf 1 gesetzt werden. Nun kann man mit /etc/init.d/monit start den Daemon Prozess starten und sich zurücklehnen.

Mit diesem einfachen Programm lässt sich sehr einfach eine Überwachung für einen Host aufbauen. In Kombination mit zentralisierten Überwachungslösungen wie Nagios, lässt es sich als Admin weitaus besser schlafen ;)

Links:
monit Homepage
monit Anwendungsbeispiele
Nagios Homepage

Related posts:

Twitter Post | Print Post

8 Responses to 'Howto: monit unter Debian Etch'

  1. Gravatar 22. July 2007 at 10:14
    Joachim Sturm
  2. Gravatar 22. July 2007 at 10:24
    matthias
  3. Gravatar 13. October 2008 at 03:45
    Florian
  4. Gravatar 22. March 2009 at 20:36
    Timbob
  5. Gravatar 23. March 2009 at 17:11
    matthias
  6. Gravatar 23. March 2009 at 22:09
    Timbob
  7. Gravatar 23. March 2009 at 22:34
    Timbob

Leave a Reply




XHTML::
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>