Postfix Überwachung mit Mailgraph und pflogsumm

2.2 pflogsumm

Um pflogsumm zu installieren, führen wir Folgendes aus

apt-get install pflogsumm

Wir möchten, dass pflogsumm täglich von einem Cron Job ausgeführt wird und den Bericht an postmaster@example.com sendet. Daher müssen wir unser System so konfigurieren, dass es eine Mail Log-Datei für 24 Stunden schreibt und danach das nächste Mail Log startet, sodass das alte Mail Log von pflogsumm gelesen werden kann. Dazu konfigurieren wir logrotate (das ist das Programm, das die Log-Dateien unseres Systems rotiert) wie folgt: öffne /etc/logrotate.conf und hänge folgende Zeile hinter der Zeile # system-specific logs may be configured here an:

vi /etc/logrotate.conf

/var/log/mail.log {
    missingok
    daily
    rotate 7
    create
    compress
    start 0
}

Es gibt ein logrotate Skript in /etc/cron.daily. Dieses Skript wird jeden Tag zwischen 06:00 Uhr und 07:00 Uhr aufgerufen. Mit der soeben vorgenommenen Konfiguration kopiert es die derzeitige Postfix Log /var/log/mail.log nach /var/log/mail.log.0 und komprimiert sie. Die komprimierte Datei wird dann /var/log/mail.log.0.gz sein. Weiterhin wird eine neue, leere /var/log/mail.log erstellt, auf die Postfix dir nächsten 24 Stunden loggen kann.

Nun erstellen wir das Skript /usr/local/sbin/postfix_report.sh das pflogsumm aufruft und veranlasst, den Bericht an postmaster@example.com zu senden:

vi /usr/local/sbin/postfix_report.sh

#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
gunzip /var/log/mail.log.0.gz

pflogsumm /var/log/mail.log.0 | formail -c -I"Subject: Mail Statistics" -I"From: pflogsumm@localhost" -I"To: postmaster@example.com" -I"Received: from www.example.com ([192.168.0.100])" | sendmail postmaster@example.com

gzip /var/log/mail.log.0
exit 0

Wir müssen dieses Skript ausführbar machen:

chmod 755 /usr/local/sbin/postfix_report.sh

Dann erstellen wir einen Cron Job, der das Skript täglich um 07:00 Uhr aufruft:

crontab -e

0 7 * * * /usr/local/sbin/postfix_report.sh &> /dev/null

Damit wird der Bericht an postmaster@example.com gesendet. So sieht es im E-Mails Client aus:

3 Ubuntu Dapper Drake (6.06 LTS)

3.1 Mailgraph

Um Mailgraph zu installieren, führen wir Folgendes aus

apt-get install rrdtool mailgraph

Ubuntu stellt uns keine Fragen. Dennoch müssen wir differenzieren, ob wir einen Content-Filter wie amavisd in Postfix verwenden oder nicht. Öffne /etc/default/mailgraph:

vi /etc/default/mailgraph

Wenn Du einen Content-Filter wie amavisd verwendest, sollte die Datei folgende Inhalte haben:

MAIL_LOG=/var/log/mail.log
IGNORE_LOCALHOST=true

Wenn nicht, sollte sie wie folgt aussehen:

MAIL_LOG=/var/log/mail.log
IGNORE_LOCALHOST=false

Ubuntu erstellt die System Startup Links für Mailgraph nicht automatisch, also führen wir dies jetzt aus:

update-rc.d mailgraph defaults

Außerdem müssen wir Mailgraph nun starten:

/etc/init.d/mailgraph start

Jetzt müssen wir das mailgraph.cgi Skript (das die Grafiken zeichnet und die Ausgabe für unsere Web Browser erstellt) in das cgi-bin Verzeichnis der www.example.com Webseite kopieren:

cp -p /usr/lib/cgi-bin/mailgraph.cgi /var/www/www.example.com/cgi-bin

Das Skript ist bereits ausführbar, also müssen wir es nicht chmoden. Falls Du für die www.example.com Webseite suExec verwendest, musst Du den Besitzer und die Gruppe von mailgraph.cgi ändern.

Richte nun Deinen Browser auf http://www.example.com/cgi-bin/mailgraph.cgi und schon siehst Du einige Grafiken. Natürlich müssen erst ein paar E-Mails durch Dein System bevor Du die ersten Resultate sehen kannst, sei also etwas geduldig.

3.2 pflogsumm

Der pflogsumm Teil ist genau das gleiche wie bei Debian Sarge:

Um pflogsumm zu installieren, führen wir Folgendes aus

apt-get install pflogsumm

Wir möchten, dass pflogsumm täglich von einem Cron Job ausgeführt wird und den Bericht an postmaster@example.com sendet. Daher müssen wir unser System so konfigurieren, dass es eine Mail Log-Datei für 24 Stunden schreibt und danach das nächste Mail Log startet, sodass das alte Mail Log von pflogsumm gelesen werden kann. Dazu konfigurieren wir logrotate (das ist das Programm, das die Log-Dateien unseres Systems rotiert) wie folgt: öffne /etc/logrotate.conf und hänge die folgende Zeile nach der Zeile # system-specific logs may be configured here an:

vi /etc/logrotate.conf

/var/log/mail.log {
    missingok
    daily
    rotate 7
    create
    compress
    start 0
}

Es gibt ein logrotate Skript in /etc/cron.daily. Dieses Skript wird täglich zwischen 06:00 Uhr und 07:00 Uhr aufgerufen. Mit der soeben vorgenommenen Konfiguration kopiert es die derzeitige Postfix Log /var/log/mail.log nach /var/log/mail.log.0 und komprimiert sie. Die komprimierte Datei ist dann /var/log/mail.log.0.gz. Weiterhin wird eine neue, leere /var/log/mail.log erstellt, auf die Postfix für die nächsten 24 Stunden loggen kann.

Nun erstellen wir das Skript /usr/local/sbin/postfix_report.sh das pflogsumm aufruft und veranlasst, den Bericht an postmaster@example.com zu senden:

vi /usr/local/sbin/postfix_report.sh

#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
gunzip /var/log/mail.log.0.gz

pflogsumm /var/log/mail.log.0 | formail -c -I"Subject: Mail Statistics" -I"From: pflogsumm@localhost" -I"To: postmaster@example.com" -I"Received: from www.example.com ([192.168.0.100])" | sendmail postmaster@example.com

gzip /var/log/mail.log.0
exit 0

Wir müssen dieses Skript ausführbar machen:

chmod 755 /usr/local/sbin/postfix_report.sh

Dann erstellen wir einen Cron Job, der das Skript jeden Tag um 07:00 Uhr aufruft:

crontab -e

0 7 * * * /usr/local/sbin/postfix_report.sh &> /dev/null

Damit wird der Bericht an postmaster@example.com gesendet.

Das könnte dich auch interessieren …