The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Обработка log-файла почтового сервера Postfix (postfix log statistic)"
Отправлено Сергей, 05-Май-06 10:52 
прогнал я скрипт с большим логом (310Mб)

памяти сожрал во время выполнения 128Мб (благо отдал потом :))) )
работал 3 минуты, загрузив тазик на 90% (остальные 10% делили между собой иксы и gkrellm)

Итого:
чисто текстовые данные по письмам (дата, время, отправитель, адресат, размер) составили около 6.5Мб
если принять размер одной записи в БД за 500 байт (примерная взятая почти с потолка цифра, хотя всякое может быть), то занимать мой лог будет около 50Мб.

Теперь к основному... товарищ Vershinin Egor, основным недостатком Вашего скрипта является оторванность от postfix как ни странно.

Вот короткий пример:
$ tail -10000 ./postfix-2006-03-21 | grep 438B324958:
21.03.2006 23:59:38 KRAT xxx.xxx.xxx [info] postfix/smtpd[11195]: [ID 197553 local1.info] 438B324958: client=unknown[85.136.42.194]
21.03.2006 23:59:40 KRAT xxx.xxx.xxx [info] postfix/cleanup[11154]: [ID 197553 local1.info] 438B324958: message-id=<720101c64cf4$e689a770$be710e0a@knee>
21.03.2006 23:59:44 KRAT xxx.xxx.xxx [info] postfix/qmgr[11146]: [ID 197553 local1.info] 438B324958: from=<info@lopez.org>, size=10647, nrcpt=2 (queue active)
21.03.2006 23:59:44 KRAT xxx.xxx.xxx [info] postfix/smtp[13443]: [ID 197553 local1.info] 438B324958: to=<rel@domain>, relay=localhost[127.0.0.1], delay=7, status=sent (250 Ok: queued as 88E1124938)
21.03.2006 23:59:44 KRAT xxx.xxx.xxx [info] postfix/smtp[13443]: [ID 197553 local1.info] 438B324958: to=<ttv@domain>, relay=localhost[127.0.0.1], delay=7, status=sent (250 Ok: queued as 88E1124938)
21.03.2006 23:59:44 KRAT xxx.xxx.xxx [info] postfix/qmgr[11146]: [ID 197553 local1.info] 438B324958: removed

Не будем обращать на то, что отправлено было все на localhost. Посмотрим только на то, что письмо ушло 2 (двум!) адресатам... И что в этом случае скрипт посчитает?
$ tail -1000 ./log | grep 85.136.42.194
21.03.2006,23:59:38,85.136.42.194,info@lopez.org,ttv@domain,10647

Т.е. мы посчитали только письмо для последнего адресата... И даже если не вспоминать про такие важные вещи, как количество соединений с одного IP (подсети и пр.), количество попыток отправки почты - про все то, что данный скрипт игнорирует - все равно получается, что функции свои он не выполняет.

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

Короче, дорого, коряво и неэффективно.

P.S.
Vershinin Egor, мне самому приходилось писать подобные скрипты для анализа работы сервера. получалось немногим лучше (если не хуже в некоторых задачах).
Хранить статистику в БД разумно, логи - нет (у Вас получается хранение чего-то среднего). Опытным путем пришел к тому, что необходимо иметь набор шаблонов grep для фильтрации интересующей меня информации из лога и еще набора специализированных скриптов для ее анализа. Это позволяет решать как текущие задачи администрирования, так и получать статистику.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру