Monit ist ein kleines sehr schlankes Programm für Linux, mit dem man einerseits den Server , auf dem es installiert ist überwachen kann und aber auch gleichzeitig andere Webserver bzw. Webseiten überwachen kann ob der gewünschte Inhalt angezeigt wird. Somit kann man prüfen ob der Webserver und die Datenbank laufen. Wenn man z.B. eine Webseite die auf PHP und MySQL läuft auf einen bestimmten Text überprüft und dieser vorhanden ist, so laufen sowohl Webserver wie auch die Datenbank.
Auf dem Server selbst, wo Monit installiert ist, hat man zudem noch weiter Möglichkeiten. Man kann Dienste bei Bedarf stoppen und starten und andere Skripte starten.
Monit benötigt sehr wenige Ressourcen. Ein kleiner vServer mit 128MB Ram und 2 GB Festplatte reichen aus um Monit zu betreiben.
Hier nun die Anleitung wie man auf dem Server Monit installiert und eine externe Webseite überwachen kann.
Wir haben einen kleinen OpenVZ vServer mit 128 Ram, 2GB Festplatte und Ubuntu 12.04 32bit bestellt.
Da in den meisten Fällen der Root Benutzer bei solchen Servern aktiv ist, melden wir uns mit diesem an und lassen den Befehl ****sudo**** in der Anleitung weg.
Wir melden uns als Root an
Installieren die neuesten Updates:
apt-get update
dann
apt-get upgrade
In den meisten Fällen ist der Apache Webserver installiert. Da wir diesen nicht benötigen löschen wir ihn: (Falls jemand diesen Server als Webserver mit Apache betreibt, kann man diesen auch laufen lassen. Der Apache Webserver und der kleine Webserver der mit Monit installiert wird, laufen problemlos parallel.)
apt-get remove apache2
update-rc.d -f apache2 remove
Jetzt kann man mit dem Befehl:
free
Überprüfen, wie viel Ram belegt wird. Jetzt macht man am besten einen sauberen reboot.
reboot
Wenn man nun mit den Befehl:
free
Überprüft wie viel Ram-Speicher belegt ist, so kann man sehen, dass kaum mehr wie ein par MB belegt sind.
Nun installieren wir Monit mit:
apt-get install monit
Nun öffnen wir mit dem Editor Vim die Konfigurationsdatei. Falls VIM nicht installiert ist mit „ apt-get install vim“ installieren.
vi /etc/default/monit
Hier fügen wir unter die Zeile „START=yes“
startup=1
ein.
(Kurzinfo zu VIM Editor: Um zu editieren muss man auf „a“ drücken. Um die Datei zu speichern und den Editor zu schließen drückt man zuerst auf Esc, dann auf den Doppelpunkt, wq! Also :wq!
Mit diesem Befehl wird die Datei gespeichert und geschlossen)
Nun öffnen wir die Einstellungen von Monit:
vi /etc/monit/monitrc
In dieser Datei ist das meiste auskommentiert und somit nicht aktiv. Im Bereich vom „mailserver“ fügen wir unseren Mailserver mit folgenden Daten ein:
Andresse vom Mailserver (SMTP), Port vom Mailserver (25) Benutzernamen vom Mailserver, Passwort zum Mailserver, wie lange man auf eine Antwort vom Mailserver warten will bis er abbricht, und das Mailformat mit einer Absenderadresse.
set mailserver deinmailserver.com port 25 username "user" password "password" with timeout 15 seconds set mail-format { from: email-irgendetwas@deinedomain.de }
Wer die Weboberfläche von Monit aktivieren möchte sucht die Zeile „set httpd port 2812 and“ und löscht das Raute Zeichen davor, damit die Zeile aktiv ist und der Server startet. Des Weiteren muss man die Zeile „allow admin:monit“ ebenfalls entkommentieren damit man einen Benutzer zum Anmelden hat. Als User ist „admin“ angegeben und das Passwort ist „monit“. Man kann dies natürlich auch hier gleich ändern.
Zu editierender Bereich:
set httpd port 2812 and
set httpd port 2812 and # use address localhost # allow localhost allow admin:monit # allow @monit # allow @users readonly
Nun gehen wir zum Ende der Datei ganz nach unten und fügen als Beispiel eine Webseite zum überwachen ein. Als Beispiel überwachen wir hier die Adresse
http://ww1.4hf.de/2013/04/windows-7-friert-im-leerlauf-standig-ein-losung-dq67ep-mainboard.html und prüfen ob der Text „einem Windows 7 PC“ enthalten ist. Falls nicht wird eine Email an 2 Adressen geschickt und dieses Email wird bei jedem zehnten Fehler wiederholt bis der Inhalt, bzw. die Webseite wieder online ist. Dann kommt noch ein Email, dass die Seite wieder online ist.
check host ww1.4hf.de with address ww1.4hf.de if failed url http://ww1.4hf.de/2013/04/windows-7-friert-im-leerlauf-standig-ein-losung-dq67ep-mainboard.html and content == "einem Windows 7 PC" timeout 10 seconds for 1 cycles then alert alert emailadress21@deinedomain.de with reminder on 10 cycles alert emailadress22@deinedomain.de with reminder on 10 cycles
Nun die Datei wieder abspeichern mit :wq!
Nun stoppen und starten wir Monit damit die neuen Einstellungen geladen werden.
/etc/init.d/monit stop /etc/init.d/monit start
Wenn hier nun die Meldung kommt: Error: /etc/init.d/monit: 39: [: start: unexpected operator
So müssen wir die Datei /etc/init.d/monit in der Zeile 39 abändern. (von == zu =)
vi /etc/init.d/monit
Suchen: if [ „$1“ == „start“ ]
Ändern in: if [ „$1“ = „start“ ]
Dann nochmal Monit stoppen und starten:
/etc/init.d/monit stop /etc/init.d/monit start
Somit sollte alles laufen. Über die Adresse http://deinewebseite.de:2812 mit dem User admin und Passwort monit kann man sich dann noch den Status direkt anzeigen lassen.
Es gibt sehr viele Möglichkeiten, was man mit Monit alles machen kann. Die ganze Dokumentation findet man auf mmonit.com/monit/documentation/monit.html
Des weiteren gibt es dann noch das Zusatzprogramm MMonit mit dem man verschiedene Installation zusammenfassen und überwachen kann.
Erleichterung für Monit
Am Ende der Datei /etc/default/monit gibt es den Eintrag:
include /etc/monit/conf.d/*
Dieser bewirkt, dass alle Dateien die im Order /etc/monit/conf.d/ liegen abgearbeitet werden.
So kann man z.B. diesen Eintrag in eine solche Datei speichern
check host ww1.4hf.de with address ww1.4hf.de if failed url http://ww1.4hf.de/2013/04/windows-7-friert-im-leerlauf-standig-ein-losung-dq67ep-mainboard.html and content == "einem Windows 7 PC" timeout 10 seconds for 1 cycles then alert alert emailadress21@deinedomain.de with reminder on 10 cycles alert emailadress22@deinedomain.de with reminder on 10 cycles
Für jeden Webserver z.B. eine eigene Datei anlegen und die einzelnen Webseiten eintragen.
Die Endung der Datei .de .com .txt spielt dabei keine Rolle.
Die Übersicht wird so sehr verbessert.
Zeitintervall Monit
Der Zeitintervall, in der Monit die Tests durchführen soll, wird über den Parameter:
set daemon 300
in der /etc/monit/monitrc eingestellt.