Mailgraph
Материал из Xgu.ru
Построение графика величины потока почты, спама и вирусов
ОС и ПО: FreeBSD, Sendmail, Mailgraph
Автор: Игорь Чубин
Правильная ссылка: [1]
- Эта статья является частью руководства по настройке Sendmail для борьбы с вирусами и спамом
Графическое изображение величины потока писем, спама и вирусов, обработанных сервером в единицу времени помогают наглядно оценить пользу от сделанных изменений.
Программа mailgraph анализирует журнал системных сообщений /var/log/maillog и на основе полученной из него информации строит графики уровня почтовой активности. Для построения графиков используется популярный инструмент RRDTool.
Процесс создания и обработки журнальной информации о потоке писем происходит так:
- Почтовая система записывает в файл /var/log/mail.log информацию о каждом прошедшем через неё письме;
- Журнал постоянно анализируется демоном mailgraph;
- Результат анализа записывается в базу данных RRD в каталоге /var/db/mailgraph/;
- CGI-скрипт mailgraph.cgi выдаёт визуальное представление информации в базе RRD;
- Представление передаётся через CGI-интерфейс Web-серверу Apache;
- Страничка, которую выдаёт Apache, визуализируется в браузере клиента.
Цветом отмечены компоненты, являющиеся частью mailgraph.
Ниже описывается процедура инсталляции и настройки
mailgraph в FreeBSD.
Программа mailgraph есть в портах, поэтому её можно установить стандартным для инсталляции портов способом.
# cd /usr/ports/ # make search name=mailgraph Port: mailgraph-1.12_1 Path: /usr/ports/mail/mailgraph Info: A RRDtool frontend for Postfix statistics Maint: rafan@FreeBSD.org B-deps: R-deps: freetype2-2.1.10_3 libart_lgpl-2.3.17_1 p5-File-Tail-0.99.3 perl-5.8.8 pkg-config-0.20_2 png-1.2.12 rrdtool-1.2.12_1 WWW: http://people.ee.ethz.ch/~dws/software/mailgraph/ # cd /usr/ports/mail/mailgraph/ # make install ...
После того как программа установлена, отредактируйте /etc/rc.conf и добавьте в него строку, включающую mailgraph:
# vi /etc/rc.conf 18a19 > mailgraph_enable="YES"
Файлы, входящие в состав пакета:
# pkg_info -Lx mailgraph Information for mailgraph-1.12_1: Files: /usr/local/www/cgi-bin/mailgraph.cgi /usr/local/sbin/mailgraph.pl /usr/local/etc/rc.d/mailgraph
- /usr/local/www/cgi-bin/mailgraph.cgi - CGI-скрипт, показывающий графики
- /usr/local/sbin/mailgraph.pl - демон, периодически выполняющий анализ почтовых журналов и обновляющий базу RRDTool
- /usr/local/etc/rc.d/mailgraph - стартовый скрипт mailgraph
Никаких конфигурационных файлов у mailgraph нет. Настройка выполняется ключами, которые передаются демону при вызове. Их можно переопределить в файле /etc/rc.conf или изменить путём непосредственного редактирования стартового скрипта /usr/local/etc/rc.d/mailgraph. Описание ключей можно получить по команде:
$ mailgraph.pl --help
Поскольку mailgraph выполняется от имени пользователя www (это указано в стартовом скрипте mailgraph), нужно чтобы у этого пользователя была возможность читать файл-журнал /var/log/maillog. Проще всего это сделать, изменив группу владельца файла /var/log/maillog:
# ls -l /var/log/maillog -rw-r----- 1 root wheel 31702 5 Ноя 11:39 /var/log/maillog # chgrp www /var/log/maillog
После того как права изменены, можно запустить mailgraph:
# /usr/local/etc/rc.d/mailgraph start Starting mailgraph.
Если всё идёт без ошибок, в результате в каталоге /var/db/mailgraph/ должны появится файлы с RRD-базами данных, заполненными на основе анализа maillog:
# ls /var/db/mailgraph/ mailgraph.pid mailgraph.rrd mailgraph_virus.rrd
Для просмотра графиков, в web-браузере нужно открыть страничку с адресом http://ИМЯ-ХОСТА/cgi-bin/mailgraph.cgi. На хосте должен быть установлен и сконфигурирован Web-сервер.
Если web-сервер не установлен, его можно установить и запустить так:
# pkg_add -r apache Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.1-release/Latest/apache.tbz... Done. ... # vi /etc/rc.conf 6a7 > apache_enable="YES" # /usr/local/etc/rc.d/apache.sh start Starting apache.
Этот способ не идеален, но для данной задачи он подходит.
Если почтовая система ещё не использовалась, графики могут быть пустыми. Для тестирования можно отправить письмо самому себе. При визуализации локальные письма исключаются из потока и в графике не учитываются. Для того чтобы включить учёт и локальных писем тоже, нужно нужно отредактировать стартовый скрипт mailgraph и перезапустить его. В файле нужно убрать --ignore-localhost из списка ключей запуска mailgraph:
# vi /usr/local/etc/rc.d/mailgraph 30c30 < mailgraph_flags=${mailgraph_flags:-"--logfile /var/log/maillog --daemon-rrd=/var/db/mailgraph --ignore-localhost --daemon-pid=${mailgraph_pidfile}"} --- > mailgraph_flags=${mailgraph_flags:-"--logfile /var/log/maillog --daemon-rrd=/var/db/mailgraph --daemon-pid=${mailgraph_pidfile}"}
[править] Дополнительная информация
- mailgraph - домашний сайт проекта
- http://www.loganalysis.org/sections/parsing/application-specific/ - список различных инструментов для анализа журналов