Mail-Statistiken mit Journald und Rsyslog
Kurztipp: Wie man Munin dazu bekommt, mit journald durch Einsatz von rsyslog Logfile-Analyse zu betreiben.
Systemd enthält bekanntlich eine ganze Reihe praktischer
Werkzeuge (und eine ganze Reihe solcher, die man nicht zwingend
einsetzen muss), darunter insbesondere den hervorragenden journald
,
der Filtern und Durchsuchen von Logfiles sehr angenehm macht. Wenig
überraschend handelt es sich bei journald
jedoch auch nicht um eine
Allheil-Lösung, z.B. wenn es darum geht, aus den Logfiles mithilfe von
Munin hübsche Graphen zu erzeugen.
Das Problem dabei liegt darin, dass der Aufruf des
journalctl
-Kommandos verhältnismäßig performanzbeeinträchtigend
ist. Hauptzweck dieses Kommandos ist das manuelle Durchsuchen von
Logfiles, und nicht die automatisierte Bearbeitung von Logs zu
Statistikzwecken. Das Problem lässt sich jedoch dadurch lösen, indem
man zusätzlich zu journald
einen weiteren Logging-Dæmon wie
rsyslog betreibt, der die zu analysierenden Logfiles für
Programme wie Munin vorbereitet. Dabei agiert journald
für Rsyslog
vollkommen transparent, d.h. Rsyslog bekommt von der Existenz des
Journaling-Dæmons überhaupt nichts mit.
Damit dies funktioniert, muss in die Datei
/etc/systemd/journald.conf
folgende Zeile eingetragen werden:
ForwardToSyslog=yes
Nach einem Neustart von systemd-journald
und ggf. von Rsyslog
erscheint das Journal für Rsyslog transparent und kann mit den
gewohnten Mitteln der /etc/rsyslog.conf
gefiltert werden. Da
journald
bereits alles loggt, kann Rsyslog auf die reine
Filterfunktionalität für Munin heruntergebrochen werden. Eine
/etc/rsyslog.conf
könnte dafür etwa so aussehen:
$ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $WorkDirectory /var/spool/rsyslog $IncludeConfig /etc/rsyslog.d/*.conf mail.* -/var/log/mail.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err
Dies beschränkt Rsyslog auf das Logging von Nachrichten auf der
mail
-Facility, welche dann in spezifische Logfiles unter /var/log
geschrieben werden, ganz wie in Zeiten vor journald
. Diese Logfiles
können dann von Programmen wie Munin analyisiert und zu Statistiken
verarbeitet werden, ohne, dass eine merkliche
Performanzbeeinträchtigung zu besorgen ist.
Valete.
Illustration: © 2014 Freedesktop.org