Log Dateien in periodischen Zeiträumen automatisch auswerten

Logdatei(en) sind recht aufschlussreich was der Rechner so die letzte Zeit getrieben hat. Zur regelmäßigen Logdateianalyse der gibt es das script Logwatch.

Aktuelle Aktivitäten kann man sich über 'tail -f /var/log/messages' ausgeben lassen.

{DIV(align=>left, width=>25%, float=>right, class="umijabox")}{DIV}

Logwatch selber ist recht anpassbar und geht regelmäßig (z.B. jede Nacht) durch die Logfiles und spuckt eine Zusammenfassung aus. Softwareseitig braucht man braucht Perl 5.8

Installation

Installation unter Ubuntu / Debian sollte kein Problem darstellen, da das Paket in den Hauptrepositories angeboten wird.

{CODE()} root@my-slave:~# apt-get install logwatch {CODE} Nach der Installation wird eine Datei in "/etc/cron.daily/" mit dem Namen "00logwatch" angelegt. Hier können die Parameter für die Auswertung angepasst werden. Eine recht nützliche Zeile könnte wie folgt aussehen:

{CODE()} /usr/sbin/logwatch --mailto user1@domain.tld,user2@domain.tld --output html --detail High --range Yesterday --service All

mehr zum logwatch einrichten unter debian und mehr HOWTO-Customize-LogWatch.

Bugs

So wie es ausschaut hat Logwatch bis zur aktuellen Version (7.3.6) noch eine kleine Macke. Falls als E-Mail Kodierung BASE64 ausgewählt wird, wird in den meisten E-Mail clients nur der erste Ausschnitt des Reports dargestellt. Dies liegt daran, dass Logwacht jeden einzelnen Abschnitt BASE64 kodiert und anschließend zusammen setzt, anstelle erst die Blöcke zusammen zu setzen und anschließend die BASE64 Kodierung durch zu führen.

Somit ist die Logwatch Installation abgeschlossen. Weit größere Herausforderung ergibt sich beim Einrichten eines Postfix) z.B. ((umija:email). Hierzu wird hier jedoch nicht eingegangen.