Linux Server: Probleme automatisch durch Monit beheben lassen

17.07.2010 | 5 Kommentare | Jeffrey

Wer selber einen eigenen Linux-Server verwalten muss, der ist fast gezwungen den Server zu überwachen, wenn sich darauf beispielsweise produktive Webseiten befinden.

Doch was macht man während den Ferien, wenn man teilweise ohne Internet unterwegs ist? monit_logoDabei kann die Software Monit helfen.

Mit ihr kann man Dienste, System-Ressourcen oder Dateien/Verzeichnisse überwachen und bei Problemen automatisch bestimmte Aktionen ausführen lassen.

Wenn wir beim Beispiel Webserver z.B. mit Apache bleiben, dann überwacht Monit diesen Dienst und stellt anhand von PID-Files fest, wenn er nicht mehr läuft.

In der Konfigurations-Datei von Monit kann man festlegen, was in einem solchen Fall geschehen soll. In diesem Fall reicht es oft, wenn der der Dienst neu gestartet wird. Dies erledigt Monit dann vollautomatisch ohne manuelle Eingriffe.

Wie installiere und konfiguriere ich Monit?

Monit kann man in den meisten Linux-Distributionen bequem über die Paketverwaltung (z.B. unter Ubuntu apt-get install monit) installieren.

Die Konfiguration läuft schlussendlich über die zentrale Datei monitrc, die sich im /etc/monit befindet.

Ein Ausschnitt aus der monitrc für das Überwachen vom SSH- und Postfix-Server:

monit_config_example

Für Ubuntu gibt es zudem eine Anleitung im Ubuntu-Wiki. Von der Installation bis zu der Konfiguration alles beschrieben.

Grundlegende Checks wie das Neustarten von Diensten oder Senden von E-Mails sind nicht sehr schwer einzubauen, wenn man die Syntax einmal verstanden hat.

Im Monit-Wiki findet und in dieser Präsentation findet man zudem einige Konfigurationsbeispiele für die Meisten bekannten Dienste wie Apache, MySQL, Postfix usw.

Kann ich den Status von Diensten, die mit Monit überwacht werden in einem Webinterface einsehen?

Ja, Monit bringt ein kleines Webinterface mit sich, dass über die Konfigurations-Datei (set httpd port …) aktiviert werden kann.

Über das Webinterface kann man den Status von überwachten Diensten einsehen und diese gegeben falls auch manuell neustarten oder stoppen.

Monit_Webinterface

Monit_Webinterface_Action[4]

Mein Fazit zu Monit

Ich finde Monit eine sehr gute Ergänzung zu Icinga, welches ich hauptsächlich zum Überwachen von Server-Diensten einsetze.

Praktisch, da ein Dienst so auch während der Nacht automatisch neugestartet wird ohne, dass man geweckt wird. Erspart einiges an Ärger und bietet eine höhere Verfügbarkeit.

Wer von euch benutzt Monit oder eine ähnliche Software produktiv?

Mehr Lesestoff: Ähnliche Beiträge

  • Dropbox Client auf einem Linux Server installieren
  • Munin: Server überwachen und Auslastung aufzeichnen
  • Server und Dienste mit Icinga überwachen
  • Beiträge im RSS-Feed durch Feedburner twittern lassen


  • 5 Kommentare

    1. Kann mich dem nur anschliessen, hab ich ebenfalls auf all meinen Linux Servern am laufen und keine Probleme mehr mit Telefonanrufen der Kumpels mitten in der Nacht ala “Hilfe der Server is weg” ;)

    2. @Marco:

      Ist echt praktisch, habe monit nun seit einigen Wochen laufen und es hat mir bereits einmal in der Nacht geholfen, da der Apache-Server ein Problem hatte.

    3. Ich habe mich, aufgrund deines Blogeintrags, dazu durchgerungen auch endlich mal ein Monitor-Programm zu installieren. Gefällt mir sehr gut und funktioniert bisher zu meiner vollen Zufriedenheit. Mein Apache läuft auch nicht immer ganz rund. Mal schauen ob sich das Problem so minimieren lässt. Danke für den Tipp und wie immer gut vorgestellt.

    4. @J.B.

      Dann viel Spass damit! Kann auf jeden Fall das “böse Erwachen” in der Nacht verringern :)

    5. Das Programm funktioniert bisher problemlos. Beim Apache mache ich den Check über die Host-Adresse, um zusätzlich auch die Perl-Funktionalität in einem bestimmten Ordner zu testen. Diese Art hat mir ein paar Fehlalarme eingebracht, weil ein DNS-Server nicht mehr existiert hat und der andere DNS-Server temporär Probleme hatte… also DNS-Server überarbeitet und einen Eintrag in die hosts-Datei gemacht. Letzteres macht den Check auch schneller. Okay, wer die IP in der Monit-Config einträgt… kann sich das sparen.

      Eine PID muss nicht unbedingt notwendig sein. Ich benutze vsftp und im Gegensatz zu ProFTP gibt’s da kein PID-File.

      # vsFTP
      check host localhost with address 127.0.0.1
      start program = “/etc/init.d/vsftpd start”
      stop program = “/etc/init.d/vsftpd stop”
      if failed host 127.0.0.1 port 21 type tcp protocol ftp then restart

      Im Webinterface erscheint dann zusätzlich zu den Kategorien “System” und “Process” die Kategorie “Host”. Wenn ich den FTP-Server stoppe, wird das ordnungsgemäß erkannt :-).

    Beitrag kommentieren

    Kommentieren ohne Angabe von Name und E-Mail Adresse möglich. Kommentare werden moderiert. Spam und Offtopic wird gelöscht.