Postfix Monitoring · 4 min read · Jan 10, 2026

Monitoraggio di Postfix con Mailgraph e pflogsumm

Monitoraggio di Postfix con Mailgraph e pflogsumm

Versione 1.0
Autore: Falko Timme

Questo articolo descrive come puoi monitorare il tuo server di posta Postfix con gli strumenti Mailgraph e pflogsumm. Mailgraph crea grafici giornalieri, settimanali, mensili e annuali delle email inviate, ricevute, rimbalzate e rifiutate e anche di spam e virus, se SpamAssassin e ClamAV sono integrati in Postfix. Questi grafici possono essere accessibili tramite un browser, mentre pflogsumm (“Postfix Log Entry Summarizer”) può essere utilizzato per inviare rapporti sull’attività di Postfix via email.

Nel seguito descriverò come installare e configurare Mailgraph e pflogsumm su Debian Sarge, Ubuntu Dapper Drake (6.06 LTS) e Fedora Core 5.

Voglio dire prima che questo non è l’unico modo per impostare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

In questo tutorial il mio sistema Linux ha l’indirizzo IP 192.168.0.100 e ospita il sito web http://www.example.com con la radice del documento /var/www/www.example.com/web e una directory cgi-bin di /var/www/www.example.com/cgi-bin, e invierò i rapporti di pflogsumm all’indirizzo email [email protected].

2 Debian Sarge

2.1 Mailgraph

Debian Sarge ha pacchetti per Mailgraph e pflogsumm, quindi li installiamo semplicemente. Installiamo anche rrdtool che memorizza i dati necessari a Mailgraph per disegnare i grafici:

apt-get install rrdtool mailgraph 

Ti verranno poste alcune domande:

Dovrebbe Mailgraph avviarsi all’avvio? <– Sì
Quale file di log dovrebbe essere utilizzato da mailgraph? <– /var/log/mail.log
Rimuovere i file RRD durante la purga? <– Sì

Poi c’è anche questa domanda:

Contare la posta in arrivo come posta in uscita?

Se hai integrato un filtro dei contenuti come amavisd (per la scansione di spam e virus) in Postfix (come in questo tutorial: Utenti e Domini Virtuali con Postfix, Courier e MySQL (+ SMTP-AUTH, Quota, SpamAssassin, ClamAV)), allora rispondi No per evitare che Mailgraph conti le tue email due volte (perché Postfix consegna le email a amavisd che poi - dopo una scansione riuscita - restituisce le email a Postfix). Se non utilizzi un filtro dei contenuti, allora rispondi Sì.

Durante l’installazione, i collegamenti di avvio del sistema per Mailgraph vengono creati automaticamente, e Mailgraph viene avviato automaticamente, quindi non è necessario avviarlo manualmente.

Ora dobbiamo copiare lo script mailgraph.cgi (che disegna i grafici e crea l’output per i nostri browser web) nella directory cgi-bin del nostro sito web www.example.com:

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

Lo script è già eseguibile, quindi non è necessario modificarne i permessi. Se utilizzi suExec per il sito web www.example.com, devi cambiare il proprietario di mailgraph.cgi al proprietario e gruppo appropriati.

Ora indirizza il tuo browser a http://www.example.com/cgi-bin/mailgraph.cgi, e dovresti vedere alcuni grafici. Naturalmente, devono esserci alcune email che passano attraverso il tuo sistema prima di vedere i primi risultati, quindi sii paziente.

Dopo un po’ di tempo i tuoi grafici potrebbero apparire così (l’output seguente è personalizzato, quindi non appare esattamente come il tuo):

Statistiche Giornalieri. 

Statistiche Settimanali.

Statistiche Mensili. 

Statistiche Annuali. 

Si prega di notare: Mailgraph riporterà spam e virus solo se hai integrato un filtro dei contenuti come amavisd in Postfix che è configurato per utilizzare SpamAssassin e ClamAV per etichettare le email di spam e virus. Se non lo fai, vedrai comunque grafici, ma senza il rapporto su spam e virus.

2.2 pflogsumm

Per installare pflogsumm, eseguiamo

apt-get install pflogsumm  

Vogliamo che pflogsumm venga eseguito da un lavoro cron ogni giorno e invii il rapporto a [email protected]. Pertanto dobbiamo configurare il nostro sistema affinché scriva un file di log della posta per 24 ore, e successivamente avvii il successivo log della posta in modo da poter fornire il vecchio log della posta a pflogsumm. Pertanto configuriamo logrotate (è il programma che ruota i file di log del nostro sistema) in questo modo: apri /etc/logrotate.conf e aggiungi il seguente blocco, dopo la riga # i log specifici del sistema possono essere configurati qui:

vi /etc/logrotate.conf

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

C’è uno script di logrotate in /etc/cron.daily. Questo script viene chiamato ogni giorno tra le 06:00 e le 07:00. Con la configurazione che abbiamo appena fatto, copierà il log attuale di Postfix /var/log/mail.log in /var/log/mail.log.0 e lo comprimerà, e il file compresso sarà /var/log/mail.log.0.gz. Creerà anche un nuovo /var/log/mail.log vuoto su cui Postfix potrà registrare per le prossime 24 ore.

Ora creiamo lo script /usr/local/sbin/postfix_report.sh che invoca pflogsumm e lo fa inviare il rapporto a [email protected]:

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: Statistiche Mail" -I"From: pflogsumm@localhost" -I"To: [email protected]" -I"Received: from www.example.com ([192.168.0.100])" | sendmail [email protected] gzip /var/log/mail.log.0 exit 0 |

Dobbiamo rendere questo script eseguibile:

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

Poi creiamo un lavoro cron che chiama lo script ogni giorno alle 07:00:

crontab -e

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

Questo invierà il rapporto a [email protected]. Appare così in un client email:

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.