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.