[sisyphus] postfix traffic collector

Pavel S. Khmelinsky =?iso-8859-1?q?hmepas_=CE=C1_yauza=2Eru?=
Чт Май 22 18:14:51 MSD 2003


Dmitry Lebkov wrote:
> On Thu, 22 May 2003 12:39:03 +0400
> Igor Dobryninsky <egor на atvc.ru> wrote:
> 
> 
>>  Hello, Mike Lykov.
>>
>>On Thu, 22 May 2003 09:31:15 +0500
>>Mike Lykov <combr на vesna.ru> wrote:
>>
>>ML> но мне подсказали - в каждой строчке есть pid... соответственно
>>ML> можно суммировать записи об одном процессе  (получения конкретного
>>ML> письма) относительно его pid, который в разных строчках (даже
>>ML> разнесенных далеко) будет один и тот же.. если postfix конечно его
>>ML> пишет ;)
>>
>>  Дело в том, что постфикс, по сути дела, это набор
>>узкоспециализированных программ, которые последовательно запускаются
>>менеджером для обработки письма. Поэтому pid тут не поможет. Тут
>>поможет уникальный МessageId, который присваивается каждому письму.
>>Вот по нему и надо фильтровать.
>>
>>  МessageId в логе постфикса указывается как раз после идентификатора
>>процесса программы-обработчика. Вот пример:
> 
> 
> Это не message id - это mail-queue-id. А message-id идет
> строчкой ниже - в сообщении от postfix/cleanup. Вот по
> комбинации нескольких mail-queue-id и одного message-id
> можно отследить весь цикл доставки сообщения, т.к. message-id
> на всех этапах доставки(DrWeb, filters, etc) остается без
> изменений, а mail-queue-id -- меняется.
> 
> 
>>May 22 12:34:36 troitsky postfix/pickup[7125]: 747A710E4: uid=112
>>from=<community-admin на altlinux.ru>
>>                                               ^^^^^^^^^
>>May 22 12:34:36 troitsky postfix/cleanup[7160]: 747A710E4:
>>message-id=<015d01c3203c$9f289770$3d01a8c0 на plant.odescable.com.ua> May
>>22 12:34:36 troitsky postfix/qmgr[6250]: 747A710E4:
>>from=<community-admin на altlinux.ru>, size=3651, nrcpt=1 (queue active)
>>May 22 12:34:36 troitsky postfix/local[7167]: 747A710E4:
>>to=<egor на atvc.ru>, relay=local, delay=0, status=sent
>>("|/usr/bin/procmail -a $DOMAI
>>
>>  Однако, дело может осложнить, например, DrWeb, если он используется,
>>или SpamAssassin или ещё что-нибудь подобное.

Я так и знал. Готового решения никто не знает. Сейчас подумываю 
прикрутить как раз еще одну самописную програмку, которая будет 
подключатся также как DrWeb а потом уже сама передавать сообщение 
дальше.

Т.е. что-нибудь вроде

avcheck   unix  -       n       n       -       5       pipe 
flags=q user=email_traf argv=email_traff_log -p 1025

localhost:1025  inet n       -      n      -       - smtpd

в master.cf

Есть мысли о предстоящих трудностях? Или готовые куски кода для 
парсинга сообщения и подсчитывания его длинны в байтах?




Подробная информация о списке рассылки Sisyphus