Статистика по Exim

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Статистика по Exim

Непрочитанное сообщение CrazyPilot » 2008-09-15 9:59:00

Доброго времени суток!

Захотелось с экзима поиметь статистику, но его eximstats и прочее утилиты что-то не прельщают. Захотелось вести статистику в постгре. Сделал пару табличек, написал запросы в экзиме, порасставлял в роутерах. Все ок. И обнаружил косяк :)

Когда екзим получает письмо - он начинает проверять получателя по verify recipient. В итоге он доходит до роутера accept, в котором в condition записан тот самый запрос к постгре, он его успешно выполняет и результат проверки получателя оказывается положительным. Далее на этапе доставки он опять выполняет запрос к постгре. Для одного письма - два запроса. Статистика кривая :)

Отсюда вопрос: как это можно исправить? Вычитал в доке экзима опцию no_verify, но эт по-моему не то, что мне нужно. Подумал в сторону перла, но не нашел как там отличить процесс проверки от процесса доставки.

Или может вообще, я неправильно делаю и можно как-то более умно и красиво сделать?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Статистика по Exim

Непрочитанное сообщение dikens3 » 2008-09-15 10:29:59

Я по окончании этапа DATA делаю.
1. 100% подлинность своих E-MAIL'ов. (можно аутентификацию, IP-Адреса и т.п. методы)
2. По окончании DATA (перед accept) фиксирую, в зависимости от отправителя. (3 кондишена)
2.а. Отправитель наш на 100% (см. пункт 1), т.е. происходит отправка любого письма.
2.б .Отправитель не наш, а это значит, что происходит приём любого письма.
2.в. Отправитель и получатель наши и происходит приём письма от наших же пользователей.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Статистика по Exim

Непрочитанное сообщение CrazyPilot » 2008-09-15 10:42:19

Что-то не совсем понял, к чему это было? :)

Вопрос стоит в том, чтобы выполнить запрос один раз.

То есть мне конфигурить запросы к постгре после acl smpt_data, а не в роутерах?
У мну еще баес выставляет очки за спам, он в систем-фильтр, по доке систем фильтр срабатывает после accept письма, получается что мне уже не подходит? Потому как количество спама я тоже хочу в статистику писать.

Ща вот думаю добавить пару роутеров редирект и выставить им verify_recipient = false, а в их кондишнене прописать запрос к постгре. Тогда на этапе проверки получателя они будут пропускаться...

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Статистика по Exim

Непрочитанное сообщение CrazyPilot » 2008-09-15 11:34:37

Хм, ну в общем сделал два роутера, в которых в кондишенах записаны запросы к постгре и стоят опции verify_sender = false, verify_recipient = false.
В итоге вроде все работает, но как-то мне не нравится куча лишних роутеров.

Может предложите, как лучше можно сделать?
Поставил перед собой задачу считать в постгре входящие письма и их общий размер, причем разные счетчики для писем "нормальных", и определённых как спам.
Последний раз редактировалось CrazyPilot 2008-09-18 8:35:22, всего редактировалось 1 раз.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Статистика по Exim

Непрочитанное сообщение dikens3 » 2008-09-15 13:32:10

Я б наверное тоже сделал через роутеры/транспорты, если бы в своё время знал как.. :-D
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Статистика по Exim

Непрочитанное сообщение CrazyPilot » 2008-09-15 15:12:14

ну тогда оставлю пока так :)

С удовольствием выслушаю возможности улучшения :)

im
проходил мимо
Сообщения: 7
Зарегистрирован: 2008-04-06 9:25:08

Re: Статистика по Exim

Непрочитанное сообщение im » 2008-09-17 14:11:24

А вы что считаете? Сколько почты пришло, или сколько получил каждый пользователь?
Если первое, то возможно лучше будет использовать системный фильтр -
он срабатывает один раз для каждого сообщения
(У lissiara он удачно используется при архивировании всей почты)
Доставка срабатывает для каждого получателя и только там есть $local_part@$domain
Вопрос в том ка вы будете учитывать повторный доставки? Или просто не обращать внимания?
ЗЫ. А чем eximstats не понравился? Мне просто интересно насколько правильно считает.
Никто не замечал за ним неточностей?
ЗЗЫ. Так-же доп информацию можно найти здесь
Добавить что-ли подпись...

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Статистика по Exim

Непрочитанное сообщение CrazyPilot » 2008-09-18 8:33:14

На данный момент у меня считает общее число принятых писем, общее количество писем, помеченных как спам и соответственно общий размер трафика по этим показателям. Для отправки из локального домена на внешние записывается общее число отправленных, трафик по этому показателю и еще статистика по каждому письму, кто отправил, куда отправил, когда и какого размера. По поводу точности - число отправленных, принятых нормально, а вот с размерами какой-то косяк, отправляю во внешний мир письмо с вложением размера 10 метров (dd сделал из /dev/zero) - exim говорит что $message_size равен 13 метрам с копейками. Что это за херь, а я так и не понял.
Вопрос в том ка вы будете учитывать повторный доставки?
Насчет повторной доставки - не совсем понял. Как может возникнуть эта ситуация?

im
проходил мимо
Сообщения: 7
Зарегистрирован: 2008-04-06 9:25:08

Re: Статистика по Exim

Непрочитанное сообщение im » 2008-09-18 9:10:56

CrazyPilot писал(а):exim говорит что $message_size равен 13 метрам с копейками. Что это за херь, а я так и не понял
Думаю, что это просто при кодировании письма размер увеличивается.
Обычно так и получается: процентов на 30 размер письма больше размера аттача
CrazyPilot писал(а):Насчет повторной доставки - не совсем понял. Как может возникнуть эта ситуация?
Ну для локальной доставки маловероятная ситуация, но например при недоступности каталога (например если он смонтирован по NFS) доставка откладывается и повторяется позже в зависимости от конфигурации повторов.
Если я конечно правильно понял документацию и ничего не перемудрил :)
Добавить что-ли подпись...

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Статистика по Exim

Непрочитанное сообщение CrazyPilot » 2008-09-18 9:28:22

Ну для локальной доставки маловероятная ситуация, но например при недоступности каталога (например если он смонтирован по NFS) доставка откладывается и повторяется позже в зависимости от конфигурации повторов.
Ну навряд ли, каталоги для почты - 5 рэйд, вряд ли отвалится. Если AD умрет - exim не дойдет до роутера где запрос к постгре, так что все хорошо вроде :)