Я хотел бы получить некоторую статистику по электронной почте, отправленной через мой почтовый сервер.
В основном мне нужно будет создать отчет, в котором будет подсчитано количество сообщений, отправленных через этот компьютер.
Я использую postfix на ubuntu 9.10, но у меня очень ограниченный опыт управления им, поэтому, если бы кто-то мог описать, как концептуально сделать это, я был бы благодарен.
Бонусные баллы - если я смогу фильтровать / нащупывать
У меня нет проблем с SQL, поэтому, если бы я мог получить csv timestamp, subject, messageid, subject, spam-score, я бы знал, как действовать; просто нужно концептуально организовать, откуда это взять (какие параметры установить и / или какие журналы извлекать).
РЕДАКТИРОВАТЬ: У меня также есть требование, чтобы процедура была как можно более надежной - я хотел бы отфильтровать любые отказы и другие ошибки, если это возможно.
Взгляните на pflogsumm
Я использовал информацию на http://www.packetmischief.ca/network/monitoring/postfix/ сделать что-то подобное. У меня это сработало хорошо, я какое-то время включил его в свое еженедельное выходное сообщение, и, пока я все еще проверял правильность работы сервера, ежедневную выходную почту. Не могу дать подробностей (материалы интеллектуальной собственности, подписанные для работы ...), но на самом деле это не большое изменение по сравнению с этим сайтом, на самом деле, насколько я помню, просто следование информации там даст вам то, что вы изначально ищете ( через snmp).
Если вы хорошо разбираетесь в perl, вы можете легко получить это для заполнения базы данных.
По поводу «бонусных баллов» - тема не логируется в лог постфикса (по крайней мере, по умолчанию). Я использую amavisd-new, и он регистрирует информацию о спаме в журнале, поэтому было бы довольно тривиально добавить несколько строк в сценарии perl, указанные в приведенной выше ссылке, и заставить его набрать оценку. Примерная строка выглядит так:
23 октября 01:29:58 hercules amavis [19936]: (19936-08) СПАМ, ->, Да, попадания = 15.389 tag = 0.1 tag2 = 3.5 kill = 3.5 tests = FH_HELO_EQ_D_D_D_D = 1.117, HELO_DYNAMIC_IPADDR2 = 3.888, HTML_MESSAGE = 0.001 , MIME_QP_LONG_LINE = 0,001, RAZOR2_CF_RANGE_51_100 = 0,365, RAZOR2_CF_RANGE_E4_51_100 = 0,467, RAZOR2_CHECK = 1,729, RCVD_IN_BRBL_LASTEXT = 1,644, RCVD_IN_PBL = 3,558, RCVD_IN_RP_RNBL = 1,284, RDNS_DYNAMIC = 0,363, SPF_SOFTFAIL = 0,972, карантин спам-60473 (Maia-спам-карантин)
Я написал скрипт типа grep для журнала postfix: https://github.com/brablc/postfix-tools/blob/master/pflogrep
Он ищет строку и выводит все строки с одинаковым идентификатором очереди, что позволяет pflogsumm
для предоставления правильной статистики по отфильтрованным данным.