Mailgraph

Материал из Xgu.ru

Перейти к: навигация, поиск

Построение графика величины потока почты, спама и вирусов

ОС и ПО: FreeBSD, Sendmail, Mailgraph
Автор: Игорь Чубин
Правильная ссылка: [1]

Эта статья является частью руководства по настройке Sendmail для борьбы с вирусами и спамом

Графическое изображение величины потока писем, спама и вирусов, обработанных сервером в единицу времени помогают наглядно оценить пользу от сделанных изменений.

Программа mailgraph анализирует журнал системных сообщений /var/log/maillog и на основе полученной из него информации строит графики уровня почтовой активности. Для построения графиков используется популярный инструмент RRDTool.

Процесс создания и обработки журнальной информации о потоке писем происходит так:

  1. Почтовая система записывает в файл /var/log/mail.log информацию о каждом прошедшем через неё письме;
  2. Журнал постоянно анализируется демоном mailgraph;
  3. Результат анализа записывается в базу данных RRD в каталоге /var/db/mailgraph/;
  4. CGI-скрипт mailgraph.cgi выдаёт визуальное представление информации в базе RRD;
  5. Представление передаётся через CGI-интерфейс Web-серверу Apache;
  6. Страничка, которую выдаёт 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
График mailgraph - наглядное представление величины потока почты и спама, обрабатываемого почтовой системой

Для просмотра графиков, в 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}"}


[править] Дополнительная информация

[править] Материалы по настройке почтовых систем на Xgu.ru

Источник — «http://xgu.ru:81/wiki/Mailgraph»