Создание отчетов о работе почтового сервера на основе Postfix
- Информация о материале
- Категория: Почтовый сервер
- Опубликовано: 07.11.2013, 23:15
- Автор: Super User
- Просмотров: 3696
У меня есть почтовый сервер на основе Postfix. В качестве антиспама там установлен SpamAssassin. Возникла задача просмотра статистики работы настроек по эффективности настроек как антиспама, так и самого почтового сервера.
Для начала я воспользовался готовым скриптом sa-stats.pl, но у него оказалось, на мой взгляд, чересчур много недостатков:
1. Написан на перле и требует доустановки большого количества модулей Perl.
2. Результат выводит только в plain-text и html
3. Дает отчет только о письмах, прошедших через SpamAssassin
4. Не умеет отослать результаты на почту
Этого мне оказалось мало. Хотелось бы видеть отчет и по тем письмам, что были отброшены настройками самого Postfix. Готовой утилиты под мои желания не нашлось, хотя, может быть, я просто плохо искал. В общем пришлось напрячься и заняться велосипедо- и костылестроением.
В результате некоторых усилий и был написан данный скрипт.
В его работе используются:
GNUPlot — для отрисовки гистограмм статистики
Base64 — для кодирования изображения для вставки в html-страницу
Wkhtmltopdf — для создания pdf из html
Mutt — для отсылки отчета этого по почте
И сам скрипт, написан на bash
Обратите внимание! Для работы не подходит версия wkhtmltopdf из репозитория. Ей необходим X-server. Конечно, если вы на сервере готовы установить X-server, то все у вас заработает. Мне такое счастье не нужно. По этому с сайта разработчика нужно скачать готовую статически собранную версию нужной битности. Тогда и X-server будет не нужен
В результате этого скрипта на почту приходят отчеты следующего вида
Строить отчеты умеет или за день, или за неделю.
В начало скрипта вынесены параметры в виде переменных, которые нужно настроить для корректной работы:
addr — адрес для отсылки отчетов
MAILFROM — адрес отправителя письма с отчетом
SUBJECT — тема письма
HTML2PDF — путь к бинарнику скачанной верии wkhtmltopdf
log — путь к файлу почтовых логов
old_log — путь к предыдущему файлу почтовых логов (после logrotate)
Кроме этого следующим блоком идут тексты сообщений, которые выводятся в отчете. Их тоже при желании можно сменить.
В функции create_gnuplot генерируется скрипт создания графической части отчета. При помощи минимальных изменений можно переделать гистограмму во что-то другое, что вам более понравится.
Скачать сам скрипт можно ЗДЕСЬ.
Большая просьба ко всем — не ленитесь оставлять комментарии или отписаться в почту по поводу данного скрипта.
Так же прошу учесть, что я далеко не ас в программировании на bash. По этому вменяемую критику с удовольствием приму.