Создание отчетов о работе почтового сервера на основе Postfix

У меня есть почтовый сервер на основе 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. По этому вменяемую критику с удовольствием приму.