Мониторинг почты · 3 min read · Sep 27, 2025
Мониторинг Postfix с помощью Mailgraph и pflogsumm на Debian Lenny
Мониторинг Postfix с помощью Mailgraph и pflogsumm на Debian Lenny
Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter
Эта статья описывает, как вы можете мониторить ваш почтовый сервер Postfix с помощью инструментов Mailgraph и pflogsumm. Mailgraph создает ежедневные, еженедельные, ежемесячные и ежегодные графики отправленных, полученных, отклоненных и отвергнутых писем, а также спама и вирусов, если SpamAssassin и ClamAV интегрированы в Postfix (например, с использованием amavisd-new). Эти графики можно просматривать в браузере, в то время как pflogsumm (“Сумматор записей журнала Postfix”) можно использовать для отправки отчетов о деятельности Postfix по электронной почте.
В следующем я опишу, как установить и настроить Mailgraph и pflogsumm на Debian Lenny.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
В этом руководстве моя система Linux имеет IP-адрес 192.168.0.100 и хостит веб-сайт http://www.example.com с корнем документа /var/www/www.example.com/web и каталогом cgi-bin /var/www/www.example.com/cgi-bin, и я буду отправлять отчеты pflogsumm на адрес электронной почты [email protected].
2 Mailgraph
Debian Lenny имеет пакеты для Mailgraph и pflogsumm, поэтому мы просто устанавливаем их. Мы также устанавливаем rrdtool, который хранит данные, необходимые Mailgraph для построения графиков:
aptitude install rrdtool mailgraphТеперь мы настраиваем пакет mailgraph следующим образом:
dpkg-reconfigure mailgraph Вам будет задано несколько вопросов:
Должен ли Mailgraph запускаться при загрузке? <– Да
Файл журнала, используемый mailgraph: <– /var/log/mail.log
Затем есть еще один вопрос:
Считать входящую почту как исходящую?Если вы интегрировали фильтр контента, такой как amavisd (для сканирования спама и вирусов), в Postfix (как в этом руководстве: Интеграция amavisd-new в Postfix для сканирования спама и вирусов), то ответьте Нет, чтобы избежать двойного учета ваших писем Mailgraph (потому что Postfix передает письма amavisd, который затем - после успешного сканирования - возвращает письма обратно в Postfix). Если вы не используете фильтр контента, то ответьте Да.
Во время установки ссылки на запуск системы для Mailgraph создаются автоматически, и Mailgraph также запускается автоматически, поэтому нам не нужно запускать его вручную.
Теперь мы должны скопировать скрипт mailgraph.cgi (который строит графики и создает вывод для наших веб-браузеров) в каталог cgi-bin нашего веб-сайта www.example.com:
cp -p /usr/lib/cgi-bin/mailgraph.cgi /var/www/www.example.com/cgi-binСкрипт уже исполняемый, поэтому нам не нужно изменять его права. Если вы используете suExec для веб-сайта www.example.com, вы должны изменить владельца и группу mailgraph.cgi на соответствующего.
Теперь откройте ваш браузер по адресу http://www.example.com/cgi-bin/mailgraph.cgi, и вы должны увидеть некоторые графики. Конечно, должны пройти некоторые письма через вашу систему, прежде чем вы увидите первые результаты, так что будьте терпеливы.
Через некоторое время ваши графики могут выглядеть так (следующий вывод настроен, поэтому он не выглядит точно как ваш):

Ежедневная статистика. 
Еженедельная статистика.
Ежемесячная статистика. 
Ежегодная статистика. Пожалуйста, обратите внимание: Mailgraph будет сообщать о спаме и вирусах только в том случае, если вы интегрировали фильтр контента, такой как amavisd-new, в Postfix, который настроен на использование SpamAssassin и ClamAV для пометки спам- и вирусных писем. Если вы этого не сделаете, вы все равно увидите графики, но без отчета о спаме и вирусах.
3 pflogsumm
Чтобы установить pflogsumm, мы запускаем
aptitude install pflogsummМы хотим, чтобы pflogsumm запускался по расписанию cron каждый день и отправлял отчет на [email protected]. Поэтому мы должны настроить нашу систему так, чтобы она записывала один файл журнала почты на 24 часа, а затем начинала следующий журнал, чтобы мы могли передать старый журнал pflogsumm. Поэтому мы настраиваем logrotate (это программа, которая вращает журналы нашей системы) следующим образом: откройте /etc/logrotate.conf и добавьте следующий фрагмент после строки # system-specific logs may be configured here:
vi /etc/logrotate.conf| [...] # system-specific logs may be configured here /var/log/mail.log { missingok daily rotate 7 create compress start 0 } |
В /etc/cron.daily есть скрипт logrotate. Этот скрипт вызывается каждый день между 06:00 и 07:00. С конфигурацией, которую мы только что сделали, он скопирует текущий журнал Postfix /var/log/mail.log в /var/log/mail.log.0 и сожмет его, а сжатый файл будет /var/log/mail.log.0.gz. Он также создаст новый, пустой /var/log/mail.log, в который Postfix сможет записывать в течение следующих 24 часов.
Теперь мы создаем скрипт /usr/local/sbin/postfix_report.sh, который вызывает pflogsumm и отправляет отчет на [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: Mail Statistics" -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 |
Мы должны сделать этот скрипт исполняемым:
chmod 755 /usr/local/sbin/postfix_report.shЗатем мы создаем задание cron, которое вызывает скрипт каждый день в 07:00:
crontab -e| 0 7 * * * /usr/local/sbin/postfix_report.sh &> /dev/null |
Это отправит отчет на [email protected]. Вот как это выглядит в почтовом клиенте:

4 Ссылки
- Mailgraph: http://people.ee.ethz.ch/~dws/software/mailgraph/
- pflogsumm: http://jimsun.linxnet.com/postfix_contrib.html
- RRDTool: http://oss.oetiker.ch/rrdtool/
- Postfix: http://www.postfix.org/
- Debian: http://www.debian.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.