Aler

Программы
Файлы
Ссылки
Гостевая

к списку программ

Maillog2005 [скачать]

Дано: сервер FreeBSD (думаю будет работать и на OpenBSD, и Linux - далее unix), почтовый сервер sendmail.
Надо: обработать лог-файл почтового сервера (maillog) и вывести на экран (или в excel).
Решение: Используем mreport by Jason Armstrong, результат выполнения программы перенаправляем в мой скрипт, который этот результат обрабатывает и в нужном виде записывает в базу данных (у меня mysql); после этого эти данные можно хранить и обрабатывать. Для обработки написана, собственно, программа Maillog2005. Под обработкой подразумевается просмотр логов в различных видах (т.е. за различные временные интервалы).

Установка на Unix. Серверная часть.

Скачиваем из интернета программу mreport (by Jason Armstrong). У меня версия 0.9. Устанавливаем её (не описываю как, т.к. всё описано в дистрибутиве).
Описание моих скриптов:
maillog - этот батничек вызавает mreport и передаёт результат работы в мои скрипты, на него с помощью [crontab -e] прописываем "планировщик": 55 23 * * * /usr/local/MailLog/maillog, т.е. в 23:55 каждого дня этот батник должен вызываться. (проконтролируйте пути).
maillog_all.pl - этот perl-скрипт заносит данные в базу mail_all (вся почта).
maillog_from.pl - этот perl-скрипт заносит данные в базу mail_from (отправленная почта).
maillog_to.pl - этот perl-скрипт заносит данные в базу mail_to (полученная почта).

Описание базы (база не блещет оригинальность и т.п.):
Использую MySQL версии 4.1.7. Создаём базу с именем maillog. В ней 2 таблицы:
mail_from(
id bigint(8) Первичное auto_increment
dd char(2) - день
mm char(2) - месяц
yyyy varchar(4) - год
numberint(4) - количество писем
bytes bigint(8) - размер
email varchar(255) - емайл
);
mail_to(
id bigint(8) Первичное auto_increment
dd char(2) - день
mm char(2) - месяц
yyyy varchar(4) - год
numberint(4) - количество писем
bytes bigint(8) - размер
email varchar(255) - емайл
);
mail_all(
id bigint(8) Первичное auto_increment
dd char(2) - день
mm char(2) - месяц
yyyy varchar(4) - год
numberint(4) - количество писем
bytes bigint(8) - размер
email_from varchar(255) - емайл от кого
email_to varchar(255) - емайл кому
);

Заводим пользователя "log", даём ему права на выборку данных из нашей базы.

Установка на Windows. Клиентская часть. (Описание под ХР, 2000)

В дистрибутиве есть MyODBC-standard-3.51.9-win.exe - это драйвер для подключения к mysql. Устанавливаем его. После успешной установки идём "Пуск"-"Панель управления"-"Администрирование"-"Источники данных (ODBC)". Там выбираем вкладку "Системный DSN", нажимаем "Добавить"; в списке выбираем "MySQL ODBC 3.51 Driver", нажимаем "Готово". Откроется окно "MySQL ODBC 3.51 Driver - DSN Configuration, Version 3.51.09". Data Source Name задаём maillog (именно такое, т.к. программа настроена именно на него); Host/Server Name(or IP) - имя или ip-адрес сервера, где находится mysql; Database Name - имя базы данных - maillog; User - пользователь - log, имеющий права на доступ к этой базе; Password - пароль - нет. Остальное оставляем по умолчанию. Обязательно, после настроек жмём "Test Data Source" - если результат теста положительный (successfully), то созданное нами соединение работает! Иначе, надо выяснить из-за чего ошибка, обычно бывает из-за неправильных прав доступа к базе. Запускаем Maillog2005.exe

Hosted by uCoz