Logfiles enthalten viele wertvolle Informationen. Eine Platte ist defekt, das RAID gibt den Geist auf, ein Backup ist fehlgeschlagen oder die Batterie von der USV ist kaputt. Leider bekommt man von diesen wichtigen Infos wenig mit, wenn man sich über auftauchende Probleme nicht automatisiert benachrichtigen lässt. Niemand kann (oder will :)) täglich alle anfallenden Logs checken.
Ein einfaches und effektives Monitoring kann man sich mit dem kleinen Daemon „swatch“ einrichten. Swatch liest live Logfiles mit und führt Aktionen aus, wenn bestimmte Schlüsselworte in den Logfiles auftauchen.
Hier ein Quick and Dirty Setup um das Logfile von rsnapshot, einem Backuptool zu monitoren und bei Problemen eine Mail zu versenden:
# swatch installieren apt-get -y install swatch
Nun muss man sich das Logfiles das überwacht werden soll ansehen und identifizieren, was dort gelogged wird, wenn Fehler auftauchen. Hier als Beispiel das Logfile von rsnapshot nach einem Backup, das Probleme verursacht hat:
[15/May/2013:01:00:21] require Lchown [15/May/2013:01:00:21] Lchown module loaded successfully [15/May/2013:01:00:21] /usr/bin/rsnapshot daily: started [15/May/2013:01:00:21] Setting locale to POSIX "C" [15/May/2013:01:00:21] echo 13895 > /var/run/rsnapshot.pid [15/May/2013:01:00:21] /root/scripts/nas-backup [15/May/2013:01:00:26] /bin/rm -rf /media/net/nas1/data/daily.6/ [15/May/2013:01:13:30] mv /media/net/nas1/data/daily.5/ /media/net/nas1/data/daily.6/ [15/May/2013:01:13:30] mv /media/net/nas1/data/daily.4/ /media/net/nas1/data/daily.5/ [15/May/2013:01:13:30] mv /media/net/nas1/data/daily.3/ /media/net/nas1/data/daily.4/ [15/May/2013:01:13:30] mv /media/net/nas1/data/daily.2/ /media/net/nas1/data/daily.3/ [15/May/2013:01:13:30] mv /media/net/nas1/data/daily.1/ /media/net/nas1/data/daily.2/ [15/May/2013:01:13:30] /bin/cp -al /media/net/nas1/data/daily.0 /media/net/nas1/data/daily.1 [15/May/2013:01:30:07] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /media/local/share /media/net/nas1/data/daily.0/localhost/ [15/May/2013:01:32:19] rsync succeeded [15/May/2013:01:32:19] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /etc /media/net/nas1/data/daily.0/localhost/ [15/May/2013:01:32:21] rsync succeeded [15/May/2013:01:32:21] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /home /media/net/nas1/data/daily.0/localhost/ [15/May/2013:03:28:06] rsync succeeded [15/May/2013:03:28:06] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /var /media/net/nas1/data/daily.0/localhost/ [15/May/2013:03:55:06] /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsync returned 12 while processing /var/ [15/May/2013:03:55:06] /usr/bin/logger -i -p user.err -t rsnapshot /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsync returned 12 while processing /var/ [15/May/2013:03:55:06] touch /media/net/nas1/data/daily.0/ [15/May/2013:03:55:08] No directory to delete: /media/net/nas1/data/_delete.13895 [15/May/2013:03:55:08] rm -f /var/run/rsnapshot.pid [15/May/2013:03:55:08] /usr/bin/logger -i -p user.err -t rsnapshot /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsnapshot daily: completed, but with some errors [15/May/2013:03:55:08] /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsnapshot daily: completed, but with some errors
Im rsnapshot-Log tauchen also die Wörter „ERROR:“ und „errors“ auf, falls es Probleme gibt. Dies teilt man Swatch in einer neu angelegten Konfigurationsdatei mit:
#/etc/swatch/watch_rsnapshot watchfor /ERROR|errors/ mail addresses=daniel\@daniel-ritter.de,subject=RSNAPSHOT_BACKUP_HAT_WARNUNG_GENERIERT
In der „watchfor“-Zeile werden die zu überwachenden Schlüsselwörter konfiguriert, in der „mail“-Zeile gibt man eine Mail-Adresse und ein Subject für die Warn-Email an.
Nun muss swatch nur noch gestartet werden:
/usr/bin/swatch --config-file=/etc/swatch/watch_rsnapshot --tail-file=/var/log/rsnapshot.log --daemon
Fallstricke:
– Das Starten von swatch muss in die Startskripte des Servers eingefügt werden, damit swatch nach einem Reboot sofort wieder mit der Überwachung beginnt.
– Das E-Mail System des Servers muss funktionieren. Am Besten generiert man eine Testmail und überprüft, ob sie tatsächlich bei der konfigurierten E-Mail Adresse ankommt. Dafür kann man einfach eines der zu überwachenden Schlüsselworte an die überwachte Logdatei anhängen.
echo "errors" >> /var/log/rsnapshot.log
Bei Problemen schaut man am Besten in den Logdateien des MTA nach um dem Fehler auf die Schliche zu kommen /var/log/exim4/mainlog (Exim) oder /var/log/mail.log (Postfix)
Hallo Andreas,
eine einfache Lösung wäre das Benutzen von /etc/rc.local
https://wiki.ubuntuusers.de/rc.local/
Damit kannst Du beliebige Kommandos beim Systemstart ausführen lassen.
Hallo,
wie müste ich denn dies in omv (debian) eintragen damit es automatisch gestratet wird?
Ich bin in Linux ne Lusche, kannst Du mir helfen?