Logfile Überwachung

Friday, 15. February 2008

Auf Grund diverser Schwierigkeiten mit Servern hab ich mir etwas sehr einfaches zur Überwachung bestimmter Logdateien überlegt. Ich bin mir bewusst, dass es dafür Xlogmaster und ähnliches gibt, doch war mir das zu gross und komplex und.. ich wollte es selber machen. ^^

xlogmaster
(für alle dies interessiert)


#!/bin/bash
MSG="delivery.temporarily.suspended" #string nach dem in der logfile gesucht werden soll
RECEP="ich@home.net"
while true; do
MSG_SCANNED=`tail -n8 /var/log/mail.log | grep -e "${MSG}"`
sleep 10
if [[ -n ${MSG_SCANNED} ]] ; then
echo "To: $RECEP " > /tmp/logmail.txt
echo "From: admin@yourserver.com" >> /tmp/logmail.txt
echo "Subject: Server - Log - Ueberwachung" >> /tmp/logmail.txt
echo $TIME >> /tmp/logmail.txt
echo "Event gefunden!" >> /tmp/logmail.txt
echo "" >> /tmp/logmail.txt
echo "Auszug aus: /var/log/mail.log" >> /tmp/logmail.txt
echo "" >> /tmp/logmail.txt
echo "-------------" >> /tmp/logmail.txt
echo ${MSG_SCANNED} >> /tmp/logmail.txt
echo "." >> /tmp/logmail.txt
sendmail $RECEP < /tmp/logmail.txt
rm /tmp/logmail.txt
echo "Searchstring found - Administrator was informed by email";
break;
fi;
done

Dieses Skript scannt also in etwa 10 Sekunden-Abständen die letzten Zeilen der angegebenen Datei nach dem definierten String und sendet an mich eine Email sobald etwas gefunden wurde. Danach beendet es sich (break;).

Dies ist natürlich nur als Vorlage zu verstehen. Zum einen muss sich das Skript nicht beenden. Man kann es per Cron starten oder manuel mit “skript.sh &” damit es im Hintergrund läuft. Man könnte anstelle oder zusätzlich zu der Email eine Aktion durchführen (zb. postfix flush etc.) … auch muss natürlich die Anzahl der Zeilen sowie das Timeout angepasst werden.. wie auch immer.. der Phantasie sind keine Grenzen gesetzt 🙂

One Response to “Logfile Überwachung”



  1. E-bike Says:

    … [Trackback]…

    […] Read More here: flexible.xapient.net/?p=30 […]…