Страница 1 из 1
Статистика по Exim
Добавлено: 2008-09-15 9:59:00
CrazyPilot
Доброго времени суток!
Захотелось с экзима поиметь статистику, но его eximstats и прочее утилиты что-то не прельщают. Захотелось вести статистику в постгре. Сделал пару табличек, написал запросы в экзиме, порасставлял в роутерах. Все ок. И обнаружил косяк
Когда екзим получает письмо - он начинает проверять получателя по verify recipient. В итоге он доходит до роутера accept, в котором в condition записан тот самый запрос к постгре, он его успешно выполняет и результат проверки получателя оказывается положительным. Далее на этапе доставки он опять выполняет запрос к постгре. Для одного письма - два запроса. Статистика кривая
Отсюда вопрос: как это можно исправить? Вычитал в доке экзима опцию no_verify, но эт по-моему не то, что мне нужно. Подумал в сторону перла, но не нашел как там отличить процесс проверки от процесса доставки.
Или может вообще, я неправильно делаю и можно как-то более умно и красиво сделать?
Re: Статистика по Exim
Добавлено: 2008-09-15 10:29:59
dikens3
Я по окончании этапа DATA делаю.
1. 100% подлинность своих E-MAIL'ов. (можно аутентификацию, IP-Адреса и т.п. методы)
2. По окончании DATA (перед accept) фиксирую, в зависимости от отправителя. (3 кондишена)
2.а. Отправитель наш на 100% (см. пункт 1), т.е. происходит отправка любого письма.
2.б .Отправитель не наш, а это значит, что происходит приём любого письма.
2.в. Отправитель и получатель наши и происходит приём письма от наших же пользователей.
Re: Статистика по Exim
Добавлено: 2008-09-15 10:42:19
CrazyPilot
Что-то не совсем понял, к чему это было?
Вопрос стоит в том, чтобы выполнить запрос один раз.
То есть мне конфигурить запросы к постгре после acl smpt_data, а не в роутерах?
У мну еще баес выставляет очки за спам, он в систем-фильтр, по доке систем фильтр срабатывает после accept письма, получается что мне уже не подходит? Потому как количество спама я тоже хочу в статистику писать.
Ща вот думаю добавить пару роутеров редирект и выставить им verify_recipient = false, а в их кондишнене прописать запрос к постгре. Тогда на этапе проверки получателя они будут пропускаться...
Re: Статистика по Exim
Добавлено: 2008-09-15 11:34:37
CrazyPilot
Хм, ну в общем сделал два роутера, в которых в кондишенах записаны запросы к постгре и стоят опции verify_sender = false, verify_recipient = false.
В итоге вроде все работает, но как-то мне не нравится куча лишних роутеров.
Может предложите, как лучше можно сделать?
Поставил перед собой задачу считать в постгре входящие письма и их общий размер, причем разные счетчики для писем "нормальных", и определённых как спам.
Re: Статистика по Exim
Добавлено: 2008-09-15 13:32:10
dikens3
Я б наверное тоже сделал через роутеры/транспорты, если бы в своё время знал как..

Re: Статистика по Exim
Добавлено: 2008-09-15 15:12:14
CrazyPilot
ну тогда оставлю пока так
С удовольствием выслушаю возможности улучшения

Re: Статистика по Exim
Добавлено: 2008-09-17 14:11:24
im
А вы что считаете? Сколько почты пришло, или сколько получил каждый пользователь?
Если первое, то возможно лучше будет использовать системный фильтр -
он срабатывает один раз для каждого сообщения
(У lissiara он удачно используется при архивировании всей почты)
Доставка срабатывает для каждого получателя и только там есть $local_part@$domain
Вопрос в том ка вы будете учитывать повторный доставки? Или просто не обращать внимания?
ЗЫ. А чем eximstats не понравился? Мне просто интересно насколько правильно считает.
Никто не замечал за ним неточностей?
ЗЗЫ. Так-же доп информацию можно найти
здесь
Re: Статистика по Exim
Добавлено: 2008-09-18 8:33:14
CrazyPilot
На данный момент у меня считает общее число принятых писем, общее количество писем, помеченных как спам и соответственно общий размер трафика по этим показателям. Для отправки из локального домена на внешние записывается общее число отправленных, трафик по этому показателю и еще статистика по каждому письму, кто отправил, куда отправил, когда и какого размера. По поводу точности - число отправленных, принятых нормально, а вот с размерами какой-то косяк, отправляю во внешний мир письмо с вложением размера 10 метров (dd сделал из /dev/zero) - exim говорит что $message_size равен 13 метрам с копейками. Что это за херь, а я так и не понял.
Вопрос в том ка вы будете учитывать повторный доставки?
Насчет повторной доставки - не совсем понял. Как может возникнуть эта ситуация?
Re: Статистика по Exim
Добавлено: 2008-09-18 9:10:56
im
CrazyPilot писал(а):exim говорит что $message_size равен 13 метрам с копейками. Что это за херь, а я так и не понял
Думаю, что это просто при кодировании письма размер увеличивается.
Обычно так и получается: процентов на 30 размер письма больше размера аттача
CrazyPilot писал(а):Насчет повторной доставки - не совсем понял. Как может возникнуть эта ситуация?
Ну для локальной доставки маловероятная ситуация, но например при недоступности каталога (например если он смонтирован по NFS) доставка откладывается и повторяется позже в зависимости от конфигурации повторов.
Если я конечно правильно понял документацию и ничего не перемудрил

Re: Статистика по Exim
Добавлено: 2008-09-18 9:28:22
CrazyPilot
Ну для локальной доставки маловероятная ситуация, но например при недоступности каталога (например если он смонтирован по NFS) доставка откладывается и повторяется позже в зависимости от конфигурации повторов.
Ну навряд ли, каталоги для почты - 5 рэйд, вряд ли отвалится. Если AD умрет - exim не дойдет до роутера где запрос к постгре, так что все хорошо вроде
