Postfix и статистика по принятым письмам

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

Имеется вопрос к спецалистам по postfix.
Есть машинка - роутер/почтовый сервер. На ней же ведется статистика при помощи netams, который считает траффик через сетевой интерфейс в локальную сеть на ip клиентских машин по портам. Все работает нормально, но с ростом почтового траффика появилась проблема с его учетом.
Пользователи забирают почту по протоколу IMAP. Из за этого, сколько раз письмо было открыто, столько раз оно было загружено с сервера на клиентскую машину и столько же раз оно было посчитано в статистику пользователя. По специфике работы, пользователям довольно часто приходится обращаться к принятым ранее письмам и объем реального почтового траффика может отличаться от посчитанного статистикой в несколько раз.
Существует ли решение, которое позволяет получить статистику по принятым postfix письмам? То есть хочется считать почтовый траффик на входе, а не на выходе. Быстрое гугление не помогло. Есть некоторое количество анализаторов логов, но ни в одном не увидел того, что хотелось бы. А хотелось бы простую табличку ПОЧТОВЫЙ_ЯЩИК-ВХОДЯЩИЙ_ТРАФФИК за фиксированный период.
В голову приходит что то вроде контент фильтра, куда передается принятое после всех проверок письмо и который занимался бы только статистикой. Сам я написать такого не смогу, но может быть уже существует что либо подобное?

Логика подсказывает что нужно

Логика подсказывает что нужно отделить учёт трафика от внутренних ресурсов. Сделать так чтоб юзеры подключались к другому ip, статистика которого не учитывается, вдимо через DNS split horizon.

Не понятно. Что имется в виду

Не понятно. Что имется в виду под - отделить учёт трафика от внутренних ресурсов? Вынести почтовый сервер в DMZ или внутрь локальной сети и считать для него траффик отдельно? Это поможет узнать суммарный траффик почтового сервера. Интересует же траффик по пользователям (по почтовым ящикам). То есть: упало письмо в почтовый ящик - посчиталось. А сколько раз его забет себе юзер не учитывать. И, как я предполагаю, сделать это отдельно от postfix не получится.

Ммм... ну я думал почтовый

Ммм... ну я думал почтовый трафик считать ненужно, по юзерам. Если нужно - приходят письма по smtp а юзеры лазят по imap/pop3 - можно перестать считать статистику по ним.

Вот как раз и хочется считать

Вот как раз и хочется считать smtp траффик, только для каждого почтового ящика отдельно. А как это сделать - не могу придумать.

Скорее всего никак. Да и как

Скорее всего никак. Да и как быть со спамом который режется спаморезкой?

Спам не считать. Его у меня

Спам не считать. Его у меня практически нет, использую dnsbl + postgrey. Для проверки на вирусы использую clamsmtpd.
Сделать бы демона по типу clamsmtpd, только который просто считал бы траффик. То есть ему postfix предал письмо, а он посчитал и вернул обратно, дальше все стандартно.

Что в качестве LDA

Что в качестве LDA используете? Если, например, довкотовский deliver, проще всего будет следующая махинация - делаете свой башевый скриптик, который делает что-то вроде (это пример, я его не тестил)

#!/bin/sh

pipe='/var/spool/lda/wc-pipe'

[[ -e "${pipe}" ]] || mkfifo "${pipe}"

tie "${pipe}" | deliver "$@" &

mailsize=$(wc -b < "${pipe}")
user=$(тут надо как-то получить из аргументов деливера имя юзера. Скорее всего хватит какого-нить $1)

echo "${user} got mail ${mailsize} bytes" >> /var/log/lda/mailsize.log

Этот файлик сохраняете и используете в качестве аргумента pipe-демону постфикса вместо deliver.

P.S. Можно эту же технику использовать и для более подробной статистики - откуда пришло письмо, к примеру, тоже может быть полезно, если ведется учет "внеуставного" траффика. Пропарсить данный лог, я надеюсь, труда не составит.

Я не использую виртуальных

Я не использую виртуальных пользователей, почту раскладывает сам postfix в ~/.maildir, pop3 и imap транспортом работает courier-imap.

Ну, в таком случае могу

Ну, в таком случае могу только посоветовать изменить ваш конфиг. Имхо, делать не-виртуальных пользователей при учете того, что пользователи забирают с imap'а - странно. Да, кстати, а что вам мешает сделать скрипт, который будет пробегать по ~/.maildir'ам всех затронутых юзеров и мерять размеры файлов новее нужного срока? И никаких логов не надо.

NightNord написал(а): Имхо,

NightNord написал(а):
Имхо, делать не-виртуальных пользователей при учете того, что пользователи забирают с imap'а - странно.

Просветите, а что странного в таком подходе?

NightNord написал(а):
Да, кстати, а что вам мешает сделать скрипт, который будет пробегать по ~/.maildir'ам всех затронутых юзеров и мерять размеры файлов новее нужного срока? И никаких логов не надо.

Ничего не мешает, очень хорошее решение, обязательно попробую. Очень может быть, что это решит мою проблему.
Спасибо :)

Начните с logwatch

Начни с logwatch, продолжи pflogsumm`ом, закончи http://www.postfix.org/addon.html.

П.С Оного не понял, ЗАЧЕМ ???? - имхо,странного хочешь

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Спасибо. Был там, правда

Спасибо. Был там, правда очень поверхностно. Как то ничего не приглянулось. Настораживает, что практически все анализаторы логов не развиваются, последние изменения были 3-5 лет назад. Но посмотрю еще обязательно.
А странного - да, есть такое, хочу. Начальник собственноручно деньги, то бишь траффик по отделам раскидывает. И фишка с почтой всю картину потрит, остальное все точно считается. Есть, конечно, вариант - забирать по pop3, но очень не хочется. У каждого почты 1-2гб, локально положить много места занимает, да и случись что с машиной, можно все потерять. В общем, imap очень удобен.

???

MVG написал(а):
Настораживает, что практически все анализаторы логов не развиваются, последние изменения были 3-5 лет назад.

Почему настораживает?
Формат логов устоялся, задача стандартна и достаточно проста.
Всех заинтересованных устраивает.

Вот попробуй разработать (и обязательно, оформить, в строгом соответствии с требованиями ЕСКД) предложения по усовершенствованию.
И представь на суд публики :)))

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".