После того как Вы запустили свой корпоративный сервер почты, возникает вопрос о том как посмотреть показатели его работы: кол-во полученной и отправленной сотрудниками почты, рейтинг сотрудников по почтовой активности, показатели трафика, а также эффективности работы правил защиты от спама включая причины блокировки. Все эти данные доступны в сыром виде в лог файле службы postfix.
Для анализа файла логов мы установим утилиту:
apt install pflogsumm
cp /usr/sbin/pflogsumm /usr/local/bin
Проверим работу скрипта указав путь к лог файлу postfix:
cat /var/log/mail.log | pflogsumm | more
Вывод будет содержать большое кол-во сгрупированных по типу данных:
Grand Totals
------------
messages
51 received
50 delivered
0 forwarded
0 deferred
0 bounced
472 rejected (90%)
0 reject warnings
0 held
0 discarded (0%)
151710 bytes received
151710 bytes delivered
4 senders
4 sending hosts/domains
11 recipients
7 recipient hosts/domains
Per-Day Traffic Summary
date received delivered deferred bounced rejected
--------------------------------------------------------------------
May 14 2023 0 0 0 0 1
May 19 2023 45 44 0 0 31
May 20 2023 6 6 0 0 140
--More--
При необходимости вы можете создать скрипт, который будет высылать отчет по почте, а так-же в виде PDF вложения, для дальнейшей пересылки. Для формирования pdf отчета и отправки письма установим необходимые пакеты:
apt install mailutils a2ps
Создадим скрипт следующего содержания:
nano /usr/local/bin/report_pdf.sh
#!/usr/bin/env bash
rm /var/log/report.txt
rm /var/log/report.ps
rm /var/log/report.pdf
cat /var/log/mail.log | pflogsumm | more >> /var/log/report.txt
sleep 10
a2ps -b --header=mail.domain.tld --rows 1 --columns 1 /var/log/report.txt -o /var/log/report.ps
ps2pdf -s1 /var/log/report.ps /var/log/report.pdf
mail -s 'Mail Server Report' -a From:Mail-Server -A /var/log/report.pdf < /var/log/report.txt
Назначим права на выполнение:
chmod +x /usr/local/bin/report_pdf.sh
Добавим задачу в cron, чтобы отчет приходил раз в неделю, так как лог обновляется еженедельно, например в пятницу в 15 часов:
crontab -e
0 15 * * 5 /usr/local/bin/report_pdf.sh