После установки очередного почтового сервера на базе МТА Exim, решил прицепить к нему парсилку логов, чтобы красивую статистику почтовика рисовало.
Первым делом настроим ротацию логов. Как-то скучно смотреть что происходит день ото дня. Настроим, чтобы ротация логов почтового сервера происходила раз в неделю ;)
Почтовик я конфигурировал с поддержкой syslog. Соответственно правим /etc/newsyslog.conf. Необходимо строку настройки ротации maillog изменить к следующему виду:
# cat /etc/newsyslog.conf | grep maillog /var/log/maillog 640 7 * $W6D0 JC |
Перестартовывать newsyslog не стоит, поскольку это действие выполняется с помощью cron каждые сутки:
# cat /etc/crontab | grep newsyslog 0 * * * * root newsyslog |
Согласно нашим настройкам, лог-файл /var/log/maillog будет поддаваться ротации 1 раз в неделю, в шестой день, то есть в субботу.
Рабочим инструментом будет утилита eximstats. Чтобы была доступна возможность рисовать графики, необходим перловый модуль GD::Graph. Установим данный модуль из портов:
# cd /usr/ports/graphics/p5-GD-Graph |
Дальше напишем простенький скрипт, который будет запускать утилиту eximstats с необходимы для нас опциями. Скрипт назовем eximstats.sh и разместим в каталоге /usr/local/etc. Содержание скрипта следующее:
# cat /usr/local/etc/eximstats.sh #!/bin/sh |
Создадим каталог, куда будут сохранятся результаты парсинга лога почтовика.
# mkdir /usr/local/www/eximstats |
Добавим такие строки в /usr/local/etc/apache22/httpd.conf (раздел <IfModule alias_module>).
Alias /eximstats/ "/usr/local/www/eximstats/" <Directory "/usr/local/www/eximstats/"> DirectoryIndex eximstats.html Options none AllowOverride Limit Order Deny,Allow Allow from all </Directory> |
Проверяем синтаксис конфигурационного файла веб-сервера Apache и перечитываем его конфигурационные файлы заново:
# apachectl configtest Syntax OK # apachectl graceful |
Поскольку лог почтового сервера будет создаваться заново в 0 часов 0 минут в субботу, настроим cron на запуск скрипта в пятницу, 23 часа 55 минут. 5 минут - достаточно большое врямя, должно хватить даже для нагруженых серверов.
# echo '# Mail server stats' >> /etc/crontab |
Чтобы не дожидаться субботы, работу скрипта можно проверить, запустив его из консоли.
# sh /usr/local/etc/eximstats.sh |
Проверить результат можно, вбив в адресную строку браузера http://IP-adress_servera/eximstats/
Последние комментарии
11 недель 5 дней назад
36 недель 7 часов назад
2 года 36 недель назад
3 года 6 недель назад
3 года 29 недель назад
3 года 45 недель назад
3 года 45 недель назад
3 года 48 недель назад
4 года 8 недель назад
4 года 12 недель назад