Postfix监控与邮件和pflogsumm在Debian Lenny
本文介绍如何使用Mailgraph和pflogsumm工具监视Postfix邮件服务器。 如果SpamAssassin和ClamAV集成到Postfix中(例如使用amavisd-new ),Mailgraph会创建发送,接收,退回和拒绝的电子邮件以及垃圾邮件和病毒的每日,每周,每月和每年图表。 可以使用浏览器访问这些图形,而pflogsumm(“Postfix日志输入摘要”)可用于发送每封邮件的Postfix活动报告。
下面我将介绍如何在Debian Lenny上安装和配置Mailgraph和pflogsumm。
我不会保证这将为您工作!
1初步说明
在本教程中,我的Linux系统的IP地址为192.168.0.100
,并将网站http://www.example.com
与文件根/var/www/www.example.com/web
和cgi-bin目录/var/www/www.example.com/cgi-bin
,我会将pflogsumm报告发送到邮箱地址postmaster@example.com
。
2邮件
Debian Lenny拥有Mailgraph和pflogsumm的包,所以我们只需安装这些。 我们还安装rrdtool存储Mailgraph所需的数据来绘制图形:
aptitude install rrdtool mailgraph
现在我们配置邮件包,如下所示:
dpkg-reconfigure mailgraph
你会被问到几个问题:
邮件是否开机?
< - 是的
邮件使用的日志文件:
< - /var/log/mail.log
那么还有这个问题:
Count incoming mail as outgoing mail?
如果您已将内容过滤器(如垃圾邮件和病毒扫描)集成到Postfix中(如本教程中所述: 将amavisd-new集成到Postfix进行垃圾邮件和病毒扫描),请回答否 ,以避免Mailgraph对您的电子邮件进行两次计数(因为Postfix将电子邮件传递到amavisd,然后 - 成功扫描后 - 将邮件传递回Postfix)。 如果不使用内容过滤器,则回答“是” 。
在安装过程中,Mailgraph的系统启动链接会自动创建,Mailgraph也会自动启动,因此我们不需要手动启动。
现在我们必须将mailgraph.cgi
脚本(它绘制图形并创建我们的Web浏览器的输出)复制到www.example.com
网站的cgi-bin目录中:
cp -p /usr/lib/cgi-bin/mailgraph.cgi /var/www/www.example.com/cgi-bin
该脚本已经可执行,所以我们不需要chmod
它。 如果您在www.example.com
网站上使用suExec,则必须将mailgraph.cgi
选择为相应的所有者和组。
现在将浏览器指向http://www.example.com/cgi-bin/mailgraph.cgi
,您应该看到一些图表。 当然,在看到第一个结果之前,必须有一些电子邮件通过您的系统,所以请耐心等待。
一段时间后,您的图形可能看起来像这样(以下输出是自定义的,所以它看起来不像你的)
Daily Statistics.
Weekly Statistics.
Monthly Statistics.
Yearly Statistics.
请注意: Mailgraph将报告垃圾邮件和病毒,只有您已将内容过滤器(如amavisd-new)集成到Postfix中,后者配置为使用SpamAssassin和ClamAV来标记垃圾邮件和病毒邮件。 如果您不这样做,您仍然会看到图形,但没有垃圾邮件和病毒报告。
3 pflogsumm
要安装pflogsumm,我们运行
aptitude install pflogsumm
我们希望pflogsumm每天由cron工作运行,并将报告发送到postmaster@example.com
。 因此,我们必须配置我们的系统,它写入一个邮件日志文件24小时,然后启动下一个邮件日志,以便我们可以将旧邮件日志提供给pflogsumm。 因此,我们配置logrotate(这是旋转系统日志文件的程序):打开/etc/logrotate.conf
并在其中添加行#系统特定日志
后,附加以下节;
vi /etc/logrotate.conf
[...] # system-specific logs may be configured here /var/log/mail.log { missingok daily rotate 7 create compress start 0 } |
/etc/cron.daily
中有一个logrotate
脚本。 06:00h和07:00h之间每天都会调用这个脚本。 通过我们刚才的配置,它将当前的Postfix日志/var/log/mail.log复制
到/var/log/mail.log.0
并进行压缩,压缩文件将是/ var / log / mail。 log.0.gz。
它还将创建一个新的,空的/var/log/mail.log,Postfix
可以在接下来的24小时内登录。
现在,我们创建脚本/usr/local/sbin/postfix_report.sh
,它调用pflogsumm并将其发送到postmaster@example.com
:
vi /usr/local/sbin/postfix_report.sh
#!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin gunzip /var/log/mail.log.0.gz pflogsumm /var/log/mail.log.0 | formail -c -I"Subject: Mail Statistics" -I"From: pflogsumm@localhost" -I"To: postmaster@example.com" -I"Received: from www.example.com ([192.168.0.100])" | sendmail postmaster@example.com gzip /var/log/mail.log.0 exit 0 |
我们必须使这个脚本可执行:
chmod 755 /usr/local/sbin/postfix_report.sh
然后我们创建一个cron工作,每天在07:00h调用脚本:
crontab -e
0 7 * * * /usr/local/sbin/postfix_report.sh &> /dev/null |
这将把报告发送到postmaster@example.com
。 它在电子邮件客户端中看起来像这样:
4链接
- 邮件: http : //people.ee.ethz.ch/~dws/software/mailgraph/
- pflogsumm: http : //jimsun.linxnet.com/postfix_contrib.html
- RRDTool : http : //oss.oetiker.ch/rrdtool/
- Postfix: http : //www.postfix.org/
- Debian: http : //www.debian.org/