Webserver ueberwachen

Aus LagoWiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Aktuelle Version (19:44, 9. Mär. 2009) (bearbeiten) (rückgängig)
K
 
(Der Versionsvergleich bezieht 5 dazwischen liegende Versionen mit ein.)
Zeile 17: Zeile 17:
ssh root@neuzustartender-server.com ps -ax | more | mail -s "Serverprozesse" serverprozesse@meine-emai.com
ssh root@neuzustartender-server.com ps -ax | more | mail -s "Serverprozesse" serverprozesse@meine-emai.com
ssh root@neuzustartender-server.com /etc/init.d/apache2 restart | mail -s "Serverrestart" serverstatus@meine-email.com
ssh root@neuzustartender-server.com /etc/init.d/apache2 restart | mail -s "Serverrestart" serverstatus@meine-email.com
-
lynx -dump http://meineseite.com/statistik.html | mail -s "Statistik nach Restart" -a From:stats@mx.meineseite.com statistik@mx.meineseite.com
+
lynx -dump <nowiki>http://meineseite.com/statistik.html</nowiki> | mail -s "Statistik nach Restart" -a From:stats@mx.meineseite.com statistik@mx.meineseite.com
fi
fi
Zeile 32: Zeile 32:
5 5 1 * * rm /root/watchlog.log
5 5 1 * * rm /root/watchlog.log
Das löscht das Logfile jeden 1. des Monats um 5:05 Uhr
Das löscht das Logfile jeden 1. des Monats um 5:05 Uhr
 +
 +
Um sich das Logfile vorher zumailen zu lassen, tragen wir folgendes in die ''crontab'' ein:
 +
0 5 1 * * cat watchlog.log | mail -s "Watchlog vom Server" -a From:serverrestart@mx.meineseite.com server@mx.meineseite.com
 +
Das mailt das Logfile jeden 1. des Monats um 5:00 Uhr
 +
 +
Editiert wird die ''crontab'' übrigens mit:
 +
crontab -e

Aktuelle Version

Manchmal ist es notwendig, einen Webserver zu überwachen, ob die Seiten korrekt erreichbar sind. Dazu kann folgende, einfache Vorgehensweise angewandt werden:

  • Auf dem zu überprüfenden Server wird eine Datei namens test.txt angelegt, die über eine URL zu erreichen ist (z.B. http://domain.tld/test.txt)
  • Diese Datei hat den nur ein Wort als Inhalt:
test
  • Auf einem zweiten Server werden folgende Shellskripte erstellt
    • watch.sh
rm watch.file
lynx -dump http://domain.tld/test.txt > watch.file
  • watch-veri.sh
if grep test watch.file
then echo "Test war erfolgreich - Server läuft: $(date)"
else
echo "Test war nicht erfolgreich - Server down: $(date)"
echo "Test war nicht erfolgreich - Server down: $(date)" | mail -s "Serverstatus" serverstatus@meine-email.com
ssh root@neuzustartender-server.com ps -ax | more | mail -s "Serverprozesse" serverprozesse@meine-emai.com
ssh root@neuzustartender-server.com /etc/init.d/apache2 restart | mail -s "Serverrestart" serverstatus@meine-email.com
lynx -dump http://meineseite.com/statistik.html | mail -s "Statistik nach Restart" -a From:stats@mx.meineseite.com statistik@mx.meineseite.com
fi

Die vorletzten beiden Zeilen starten den zu überwachenden Apache-Server neu. Die erste der beiden Zeilen schreibt vor dem neustart des Apachen alle laufenden Prozesse ein eine Mail. Voraussetzung das das neustarten des Servers funktioniert ist eine eingerichtete Authentifizierung beider Server gegeneinander. Siehe Server_Authorisierung

  • In der crontab wir jetzt noch eingetragen, dass zu jedem Zeitpunkt x die Datei watch.sh und eine Minute später die Datei watch-veri.sh ausgeführt werden soll.
1,11,21,31,41,51        *       *       *       *       /root/watch.sh >> watchlog.log
2,12,22,32,42,52        *       *       *       *       /root/watch-veri.sh >> watchlog.log

Das Schreibt die ausgaben noch zusätzlich in das Logfile names watchlog.log

Wenn man auf Nummer sicher gehen möchte, dass die Logfiles einem nicht auf einmal den Speicher voll laufen lassen, dann trägt man noch folgedes in die crontab ein:

5       5       1       *       *       rm /root/watchlog.log

Das löscht das Logfile jeden 1. des Monats um 5:05 Uhr

Um sich das Logfile vorher zumailen zu lassen, tragen wir folgendes in die crontab ein:

0       5       1       *       *       cat watchlog.log | mail -s "Watchlog vom Server" -a From:serverrestart@mx.meineseite.com server@mx.meineseite.com

Das mailt das Logfile jeden 1. des Monats um 5:00 Uhr

Editiert wird die crontab übrigens mit:

crontab -e
Persönliche Werkzeuge
Lagopixel