[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