Postfix Monitoring · 4 min read · Jan 10, 2026

Surveillance de Postfix avec Mailgraph et pflogsumm

Surveillance de Postfix avec Mailgraph et pflogsumm

Version 1.0
Auteur : Falko Timme

Cet article décrit comment vous pouvez surveiller votre serveur de messagerie Postfix avec les outils Mailgraph et pflogsumm. Mailgraph crée des graphiques quotidiens, hebdomadaires, mensuels et annuels des e-mails envoyés, reçus, rebondis et rejetés, ainsi que des spams et des virus, si SpamAssassin et ClamAV sont intégrés à Postfix. Ces graphiques peuvent être consultés avec un navigateur, tandis que pflogsumm (“Postfix Log Entry Summarizer”) peut être utilisé pour envoyer des rapports d’activité de Postfix par e-mail.

Dans ce qui suit, je vais décrire comment installer et configurer Mailgraph et pflogsumm sur Debian Sarge, Ubuntu Dapper Drake (6.06 LTS) et Fedora Core 5.

Je tiens à dire d’abord que ce n’est pas la seule façon de mettre en place un tel système. Il existe de nombreuses façons d’atteindre cet objectif, mais c’est la méthode que je choisis. Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque Préliminaire

Dans ce tutoriel, mon système Linux a l’adresse IP 192.168.0.100 et héberge le site web http://www.example.com avec le document root /var/www/www.example.com/web et un répertoire cgi-bin de /var/www/www.example.com/cgi-bin, et j’enverrai les rapports pflogsumm à l’adresse e-mail [email protected].

2 Debian Sarge

2.1 Mailgraph

Debian Sarge a des paquets pour Mailgraph et pflogsumm, donc nous les installons simplement. Nous installons également rrdtool qui stocke les données nécessaires à Mailgraph pour dessiner les graphiques :

apt-get install rrdtool mailgraph

Vous serez invité à répondre à quelques questions :

Mailgraph doit-il démarrer au démarrage ? <– Oui
Quel fichier journal doit être utilisé par mailgraph ? <– /var/log/mail.log
Supprimer les fichiers RRD lors de la purge ? <– Oui

Ensuite, il y a aussi cette question :

Compter le courrier entrant comme courrier sortant ?

Si vous avez intégré un filtre de contenu comme amavisd (pour le filtrage des spams et des virus) dans Postfix (comme dans ce tutoriel : Utilisateurs et domaines virtuels avec Postfix, Courier et MySQL (+ SMTP-AUTH, Quota, SpamAssassin, ClamAV)), alors répondez Non pour éviter que Mailgraph ne compte vos e-mails deux fois (car Postfix livre les e-mails à amavisd qui, après un scan réussi, les renvoie à Postfix). Si vous n’utilisez pas de filtre de contenu, alors répondez Oui.

Pendant l’installation, les liens de démarrage du système pour Mailgraph sont créés automatiquement, et Mailgraph est également démarré automatiquement, donc nous n’avons pas besoin de le démarrer manuellement.

Maintenant, nous devons copier le script mailgraph.cgi (qui dessine les graphiques et crée la sortie pour nos navigateurs web) dans le répertoire cgi-bin de notre site web www.example.com :

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

Le script est déjà exécutable, donc nous n’avons pas besoin de changer ses permissions. Si vous utilisez suExec pour le site web www.example.com, vous devez changer le propriétaire de mailgraph.cgi au propriétaire et au groupe appropriés.

Maintenant, dirigez votre navigateur vers http://www.example.com/cgi-bin/mailgraph.cgi, et vous devriez voir quelques graphiques. Bien sûr, il doit y avoir quelques e-mails passant par votre système avant que vous ne voyiez les premiers résultats, alors soyez patient.

Après un certain temps, vos graphiques pourraient ressembler à ceci (la sortie suivante est personnalisée, donc elle ne ressemble pas exactement à la vôtre) :

Statistiques Quotidiennes.

Statistiques Hebdomadaires.

Statistiques Mensuelles.

Statistiques Annuelles.

Veuillez noter : Mailgraph signalera les spams et les virus uniquement si vous avez intégré un filtre de contenu comme amavisd dans Postfix qui est configuré pour utiliser SpamAssassin et ClamAV pour marquer les e-mails de spam et de virus. Si vous ne faites pas cela, vous verrez toujours des graphiques, mais sans le rapport de spam et de virus.

2.2 pflogsumm

Pour installer pflogsumm, nous exécutons

apt-get install pflogsumm

Nous voulons que pflogsumm soit exécuté par un cron job chaque jour et envoie le rapport à [email protected]. Par conséquent, nous devons configurer notre système pour qu’il écrive un fichier journal de messagerie pendant 24 heures, puis commence le prochain journal de messagerie afin que nous puissions alimenter l’ancien journal de messagerie à pflogsumm. Par conséquent, nous configurons logrotate (c’est le programme qui fait tourner les fichiers journaux de notre système) comme suit : ouvrez /etc/logrotate.conf et ajoutez le passage suivant après la ligne # les journaux spécifiques au système peuvent être configurés ici :

vi /etc/logrotate.conf

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

Il y a un script logrotate dans /etc/cron.daily. Ce script est appelé tous les jours entre 06:00h et 07:00h. Avec la configuration que nous venons de faire, il copiera le journal de Postfix actuel /var/log/mail.log vers /var/log/mail.log.0 et le compressera, et le fichier compressé sera /var/log/mail.log.0.gz. Il créera également un nouveau /var/log/mail.log vide dans lequel Postfix pourra enregistrer pour les prochaines 24 heures.

Maintenant, nous créons le script /usr/local/sbin/postfix_report.sh qui invoque pflogsumm et lui fait envoyer le rapport à [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: Statistiques de 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 |

Nous devons rendre ce script exécutable :

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

Ensuite, nous créons un cron job qui appelle le script tous les jours à 07:00h :

crontab -e

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

Cela enverra le rapport à [email protected]. Cela ressemble à ceci dans un client de messagerie :

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.