公司用postfix做MTA来发送邮件,需要知道每天的发送情况,最好有比较详细和直观的统计表示。 我来之前公司采用自己写的JAVA程序来分析maillog,但是邮件升级后,程序分析就有问题,暂时我也改不了程序,所以只能想其他办法了。
其实sendmail自带了一个邮件统计命令–mailstats,可以简单的统计邮件发送情况。但是不知道对postfix是否适合。 在网上搜索了一下,有好几个程序可以做这个事情。我目前采用了mailgraph这个程序来完成我的工作。
先看我目前使用的效果: http://mail.5460.cn:1215/cgi-bin/mailgraph.cgi
方法如下:
安装RRDtool,Tail等模块。
#wget http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.2.15.tar.gz #tar -vxzf rrdtool-1.2.15.tar.gz #cd rrdtool-1.2.15 #./configure&& make && make install & make site-perl-install #cd .. #cpan cpan>install Time::HiRes cpan> install File::Tail cpan> exit
这里利用了perl的自动更新库功能,如果你是代理上网,那么在执行cpan的时候,填写你的代理服务器地址。
下载安装mailgraph
#wget wget http://people.ee.ethz.ch/~dws/software/mailgraph/pub/mailgraph-1.12.tar.gz #tar -vxzf mailgraph-1.12.tar.gz #cd mailgraph-1.12 #cp mailgraph.cgi /var/www/cgi-bin/ #chmod 755 /var/www/cgi-bin/mailgraph.cgi #cp mailgraph-init /etc/init.d/mailgraph-init #chmod u+x /etc/init.d/mailgraph-init #cp mailgraph.pl /usr/local/bin/
如果你的mail日志不是在缺省路径(/var/log/maillog),那么修改/etc/init.d/mailgraph-init文件,修改前面的变量。
修改mailgraph.pl文件,保证RRDs.pm模块能包含进来。打开/usr/local/bin/mailgraph.pl文件,在第二行加上
use lib '/usr/local/rrdtool-1.2.15/lib/perl/';
运行和测试
#/etc/init.d/httpd restart #/etc/init.d/mailgraph-init start
打开浏览器,输入
http://your-domain/cgi-bin/mailgraph.cgi
你应该可以看到效果了。
BTW:
postfix程序的文档库中(/usr/share/doc/postfix-)中有一个名为pflogsumm-faq.txt的文件。其实pflogsumm也是一个统计postfix邮件的程序,地址如下: