Mit dem Umstieg auf systemd ist syslog so langsam am Aussterben. Das Loggen von Ereignissen erledigt journald. Leider schreibt dieser ein Binärlog, welches mailgraph.pl so nicht auslesen kann. Allerdings bietet journalctl auch die Möglichkeit das Binärlog im gewohnten syslog-Format auszugeben.
/usr/bin/journalctl --no-pager -qu postfix
mailgraph.pl kann diese Ausgabe direkt verarbeiten, man muss sie nicht zuvor in eine temporäre Datei schreiben.
/usr/bin/journalctl --no-pager -qu postfix| /usr/bin/mailgraph.pl -c --daemon-log /var/log/mailgraph \ /mailgraph.log --daemon-rrd=/var/lib/mailgraph -l -
Zwei Probleme tun sich hier allerdings auf:
Ersteres lässt sich mit „env LANG=C“ umgehen, zweites braucht etwas Datumsmathematik. Zum Glück kann date nicht nur das Datum (und Zeit) ausgeben bzw. stellen, es kann auch damit rechnen. Also geben wir journalctl auf dem Weg, es soll nur die letzte Stunde ausgeben.
env LANG=C /usr/bin/journalctl --no-pager -qu postfix --since="$(date +"%Y-%m-%d %H:%m" --date '-1 hour')"| \ /usr/bin/mailgraph.pl -c --daemon-log /var/log/mailgraph/mailgraph.log --daemon-rrd=/var/lib/mailgraph -l -
Das ganze jetzt per cron alle 5 Minuten aufrufen lassen und schon hat man seine geliebte Mailstatistik wieder.