From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 23 May 2003 01:46:22 +1100 From: Dmitry Lebkov To: sisyphus@altlinux.ru Subject: Re: [sisyphus] postfix traffic collector Message-Id: <20030523014622.2c788944.dima@sakhalin.ru> In-Reply-To: <3ECCDB5B.9040908@yauza.ru> References: <3ECC4191.6060401@yauza.ru> <200305220931.15658.combr@vesna.ru> <20030522083903.6DE8C10E2@troitsky.atvc.ru> <20030522231307.0470cce0.dima@sakhalin.ru> <3ECCDB5B.9040908@yauza.ru> X-Mailer: Sylpheed version 0.8.11 (GTK+ 1.2.10; i586-alt-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: sisyphus@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: On Thu, 22 May 2003 18:14:51 +0400 "Pavel S. Khmelinsky" wrote: > Dmitry Lebkov wrote: > > On Thu, 22 May 2003 12:39:03 +0400 > > Igor Dobryninsky wrote: > > > > > >> Hello, Mike Lykov. > >> > >>On Thu, 22 May 2003 09:31:15 +0500 > >>Mike Lykov 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= > >> ^^^^^^^^^ > >>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=, size=3651, nrcpt=1 (queue > >active)>May 22 12:34:36 troitsky postfix/local[7167]: 747A710E4: > >>to=, 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 > > Есть мысли о предстоящих трудностях? Или готовые куски кода для > парсинга сообщения и подсчитывания его длинны в байтах? Есть предположение, что после передачи сообщения через smtpd (а не через pipe) может измениться message-id. Но это только предположение %) Сейчас пишется парсер на перле, который _должен_ учесть все особенности имеющегося в ALM постфикса. Задача - учет успешно доставленных сообщений (для системы расчетов ISP). Данные складываются в MySQL. Если получится что-нить приличное %) -- можно будет попытаться либо завернуть это в пакет, либо добавить как contrib к постфиксу. -- WBR, Dmitry Lebkov