Створення звітів про роботу поштового сервера на основі Postfix
- Деталі
- Категорія: Поштовий сервер
- Опубліковано: Неділя, 06 січня 2019, 19:51
- Автор: Super User
- Перегляди: 4107
У мене є поштовий сервер на основі 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. Через це критику з задоволенням прийму.
Підтримайте, будь ласка автора
та придбайте книгу
"Налаштування поштового
сервера на базі Postfix, Dovecot
та RoundCube"
В електронному вигляді