Страница 1 из 1

Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-16 23:14:27
Alex2008
Приветствую, уважаемые!
Подскажите, как должен выглядеть ACL в acl_smtp_data чтобы в MYSQL писались только входящие для local_domains (она типа domainlist local_domains=vasya.ru : petya.ru : zina.ru) ? Т.е. в acl_smtp_data есть строка "писать все в мускул", но хотелось бы, чтобы писалась только входящая корреспонденция.
Заранее, спасибо.

Re: Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-17 0:10:24
dikens3
А в чём проблема? Логика вроде верная. Всё что идёт к твоему домену фиксируй в базе. (получателей может быть несколько, не забывай. :-) )

P.S. А то звучит как-то странно. Я мол ничего не сделал, даже не попробовал, и это ничего у меня не получается.
А если боишься что-то испортить, то не переживай. Exim просто отрубится и ты при первом же письме (сам сразу попробуй) увидишь в paniclog своё недоразумение.

Re: Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-19 14:46:40
Alex2008
Спасибо за "помощь", про нескольких получателей не забыл., сделал, как и планировал. Просто странно, от "знающих" людей (судя по форуму конечно) такие мессаги получать. Ну да ладно, dikens3, "почивай на лаврах своего величия".

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

Re: Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-19 15:36:22
serge
Зря ты так на комрада :roll: Не думаю что он тебе зла хотел.
Тыкнуть в ман, как говоришь, в конечном результате полезней для тебя же, чем тыкнуть в ответ. Да и не всегда есть готовые ответы, что-то делать и пробовать только для того чтобы ответить на форуме... не думаю что у многих на это есть время. На нетипичные вопросы зачастую только указываеться направление в котором стоит двигаться.
Про "ярлыки"... если что-то пробуешь, то обычно в первом посте с этого и начинают. Типа я попробовал так, так и вот так и ничего не вышло, поэтому я тут. Т.к. ничего об этом не было сказано, логично сделать вывод что ничего не пробовалось.
:P

Re: Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-19 17:06:00
Alex Keda
если ты даже не пробуешь ничего сделать - помогать тебе никто не будет, если только это не действительно исключительный случай, когда задачи интересная и неординарная.
и дикенс прав - ты ничего не сделал, и ничего не получилось.
Если бы ты хотя бы отписался - я прочёл документацию и там нет ничего похожего или решения - тогда другой разговор.

Re: Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-19 21:32:48
dikens3
Подскажите, как должен выглядеть ACL в acl_smtp_data чтобы в MYSQL писались только входящие для local_domains (она типа domainlist local_domains=vasya.ru : petya.ru : zina.ru) ? Т.е. в acl_smtp_data есть строка "писать все в мускул", но хотелось бы, чтобы писалась только входящая корреспонденция.
я перепробовал множество вариантов, прежде чем идти сюда за советом.
Вот из 1-го не следует второе.

А вообще если нужна помощь нужно более чётко описывать, что пробовал, что получилось и что нет. И что нужно в конце концов.

Могу сказать, что у меня есть готовое решение, но оглашать его не буду, т.к. несовсем корректно сделано (стыдно т.е. :-) )

Re: Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-20 13:50:43
Alex2008
Прошу прощения за грубость, если кого обидел, сделано сейчас так:

Макрос

Код: Выделить всё

STAT_ADD=INSERT INTO stat (d,sender,recipient,size,shost) values \
        (now(),'${quote_mysql:$sender_address}',\
        '${quote_mysql:$recipients}',\
        $message_size,'${quote_mysql:$sender_host_address}')
CONFDIR = /usr/local/etc/exim        
в acl_check_data:

Код: Выделить всё

  warn  condition       = ${lookup{${lc:$sender_address_domain}}lsearch{CONFDIR/send_domains}{no}{yes}}
   set  acl_m1          = ${lookup mysql{STAT_ADD}}
Если есть более, эллегантное решение, буду только рад.

Оффтоп:
А вообще предыстория всего этого такова. Поставило руководство считать трафик по юзверям, сделана была связка squid+ntlm, так же работает ipcad
1. После ротации лога squid, запускается перловый скрипт, который складирует в базу лог сквида и проставляет соотвествие ip-login (ну вот такие у меня юзеры, ip-шнеки меняют как перчатки)
2. далее обрабатывается лог ipcad, причем проксевый траф не учитывается, он вообще самим ipcad -oм рубится :), причем траф с него пишется уже по логину юзера так же детализируется по некоторым портам (ICQ, MailAgent и пр. всего с десяток)
3. Скрипт, который формирует детальную статистику посещений сайтов, т.к. в базе это хранить не выгодно (потом тормоза при просмотре случаются), оно все зипуется в файлы, т.е. на 250 с лишним человеко-лиц, получается примерно 6 мегов
4. Скрипт, рассовывает трафф по отделам и поддтирает все временные таблицы, нужен в основном, чтобы при просмотре было поменьше тормазов, так же его функция еще и переместить траф в архивные таблицы, если начался новый месяц.

Ну, и, конечно, перед всем этим безобразием, стартует скрипт, который делает бакап базы, снимок ipcad, зипует и складывает в папочку, где хранятся бакапы, а затем выдергивает из AD список всех пользователей (по типу имя-логин), принадлежащих группе inet (т.е. которым ваще разрешен инет)

Ну а далее php, веб морда. Дак и вот, мыльный траф просто считался на сервак, дак мое руководство решило, что сие не есть гуд, и поставило задачу реализовать детализацию: кому-сколько-объем.
Щас написан скриптик перловый, которые из базы эту (мыльную) стату выгребает, рассовывает по юзверям, заодно считатет спам.

А вопрос я задал, несколько из эгоистичных целей, ибо, как-говорится, сделать нужно было "вчера", а думать и читать маны было лень, так что еще раз прошу прощения за грубость.

Re: Ведение статистики входящих - Exim+MySQL

Добавлено: 2008-01-20 20:37:45
dikens3
Alex2008 писал(а):Приветствую, уважаемые!
Подскажите, как должен выглядеть ACL в acl_smtp_data чтобы в MYSQL писались только входящие для local_domains (она типа domainlist local_domains=vasya.ru : petya.ru : zina.ru) ? Т.е. в acl_smtp_data есть строка "писать все в мускул", но хотелось бы, чтобы писалась только входящая корреспонденция.
Заранее, спасибо.
acl_smtp_rcpt:

Код: Выделить всё

  warn   domains       = +local_domains
              set acl_mXX = 999
acl_smtp_data:

Код: Выделить всё

  warn   condition     = ${if eq{$acl_m1}{999}}
          set acl_m19   = ${lookup mysql{MYSQL_LOGDATA_INCOMING}}
Как-то так сложилось. что нельзя использовать в acl_smtp_date конструкцию domains = xxx
Приходится изголяться.