Вход на сайт

Навигация

Сейчас на сайте

Пользователей онлайн: 0.

Сбор новостей

Подписка на Сбор новостей

Вы здесь

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

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

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

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

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

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

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

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

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

Что в качестве 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 написал(а):
Имхо, делать не-виртуальных пользователей при учете того, что пользователи забирают с imap'а - странно.

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

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

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

Начни с 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