Linux Server: Probleme automatisch durch Monit beheben lassen

17.07.2010 | 5 Kommentare | Jeffrey

Wer sel­ber einen eige­nen Linux-Server ver­wal­ten muss, der ist fast gezwun­gen den Ser­ver zu über­wa­chen, wenn sich dar­auf bei­spiels­weise pro­duk­tive Web­sei­ten befinden.

Doch was macht man wäh­rend den Ferien, wenn man teil­weise ohne Inter­net unter­wegs ist? monit_logoDabei kann die Soft­ware Monit helfen.

Mit ihr kann man Dienste, System-Ressourcen oder Dateien/Verzeichnisse über­wa­chen und bei Pro­ble­men auto­ma­tisch bestimmte Aktio­nen aus­füh­ren lassen.

Wenn wir beim Bei­spiel Web­ser­ver z.B. mit Apa­che blei­ben, dann über­wacht Monit die­sen Dienst und stellt anhand von PID-Files fest, wenn er nicht mehr läuft.

In der Konfigurations-Datei von Monit kann man fest­le­gen, was in einem sol­chen Fall gesche­hen soll. In die­sem Fall reicht es oft, wenn der der Dienst neu gestar­tet wird. Dies erle­digt Monit dann voll­au­to­ma­tisch ohne manu­elle Eingriffe.

Wie instal­liere und kon­fi­gu­riere ich Monit?

Monit kann man in den meis­ten Linux-Distributionen bequem über die Paket­ver­wal­tung (z.B. unter Ubuntu apt-get install monit) installieren.

Die Kon­fi­gu­ra­tion läuft schluss­end­lich über die zen­trale Datei moni­trc, die sich im /etc/monit befindet.

Ein Aus­schnitt aus der moni­trc für das Über­wa­chen vom SSH– und Postfix-Server:

monit_config_example

Für Ubuntu gibt es zudem eine Anlei­tung im Ubuntu-Wiki. Von der Instal­la­tion bis zu der Kon­fi­gu­ra­tion alles beschrieben.

Grund­le­gende Checks wie das Neu­star­ten von Diens­ten oder Sen­den von E-Mails sind nicht sehr schwer ein­zu­bauen, wenn man die Syn­tax ein­mal ver­stan­den hat.

Im Monit-Wiki fin­det und in die­ser Prä­sen­ta­tion fin­det man zudem einige Kon­fi­gu­ra­ti­ons­bei­spiele für die Meis­ten bekann­ten Dienste wie Apa­che, MySQL, Post­fix usw.

Kann ich den Sta­tus von Diens­ten, die mit Monit über­wacht wer­den in einem Web­in­ter­face einsehen?

Ja, Monit bringt ein klei­nes Web­in­ter­face mit sich, dass über die Konfigurations-Datei (set httpd port …) akti­viert wer­den kann.

Über das Web­in­ter­face kann man den Sta­tus von über­wach­ten Diens­ten ein­se­hen und diese gege­ben falls auch manu­ell neu­star­ten oder stoppen.

Monit_Webinterface

Monit_Webinterface_Action[4]

Mein Fazit zu Monit

Ich finde Monit eine sehr gute Ergän­zung zu Icinga, wel­ches ich haupt­säch­lich zum Über­wa­chen von Server-Diensten einsetze.

Prak­tisch, da ein Dienst so auch wäh­rend der Nacht auto­ma­tisch neu­ge­star­tet wird ohne, dass man geweckt wird. Erspart eini­ges an Ärger und bie­tet eine höhere Verfügbarkeit.

Wer von euch benutzt Monit oder eine ähnli­che Soft­ware produktiv?

Ähnliche Artikel

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
Bilder der WordPress Mediathek automatisch verkleinern lassen

5 Kommentare

  1. Marco (17/07/2010) Antworten

    Kann mich dem nur anschlies­sen, hab ich eben­falls auf all mei­nen Linux Ser­vern am lau­fen und keine Pro­bleme mehr mit Tele­fon­an­ru­fen der Kum­pels mit­ten in der Nacht ala «Hilfe der Ser­ver is weg» ;)

  2. Jeffrey (17/07/2010) Antworten

    @Marco:

    Ist echt prak­tisch, habe monit nun seit eini­gen Wochen lau­fen und es hat mir bereits ein­mal in der Nacht gehol­fen, da der Apache-Server ein Pro­blem hatte.

  3. J.B. (19/07/2010) Antworten

    Ich habe mich, auf­grund dei­nes Blog­ein­trags, dazu durch­ge­run­gen auch end­lich mal ein Monitor-Programm zu instal­lie­ren. Gefällt mir sehr gut und funk­tio­niert bis­her zu mei­ner vol­len Zufrie­den­heit. Mein Apa­che läuft auch nicht immer ganz rund. Mal schauen ob sich das Pro­blem so mini­mie­ren lässt. Danke für den Tipp und wie immer gut vorgestellt.

  4. Jeffrey (19/07/2010) Antworten

    @J.B.

    Dann viel Spass damit! Kann auf jeden Fall das «böse Erwa­chen» in der Nacht verringern :)

  5. J.B. (22/12/2010) Antworten

    Das Pro­gramm funk­tio­niert bis­her pro­blem­los. Beim Apa­che mache ich den Check über die Host-Adresse, um zusätz­lich auch die Perl-Funktionalität in einem bestimm­ten Ord­ner zu tes­ten. Diese Art hat mir ein paar Fehl­alarme ein­ge­bracht, weil ein DNS-Server nicht mehr exis­tiert hat und der andere DNS-Server tem­po­rär Pro­bleme hatte… also DNS-Server über­ar­bei­tet und einen Ein­trag in die hosts-Datei gemacht. Letz­te­res macht den Check auch schnel­ler. Okay, wer die IP in der Monit-Config ein­trägt… kann sich das sparen.

    Eine PID muss nicht unbe­dingt not­wen­dig sein. Ich benutze vsftp und im Gegen­satz zu ProFTP gibt’s da kein PID-File.

    # vsFTP
    check host local­host with address 127.0.0.1
    start pro­gram = «/etc/init.d/vsftpd start«
    stop pro­gram = «/etc/init.d/vsftpd stop«
    if fai­led host 127.0.0.1 port 21 type tcp pro­to­col ftp then restart

    Im Web­in­ter­face erscheint dann zusätz­lich zu den Kate­go­rien «Sys­tem» und «Pro­cess» die Kate­go­rie «Host». Wenn ich den FTP-Server stoppe, wird das ord­nungs­ge­mäß erkannt :-).

Beitrag kommentieren

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