邮件和pflogsumm的Postfix监控

Postfix监控与邮件和pflogsumm

版本1.0
作者:Falko Timme

本文介绍如何使用Mailgraph和pflogsumm工具监视Postfix邮件服务器。 Mailgraph每天,每周创建,每月和每年的图形发送,接收,退回,拒绝电子邮件和还垃圾邮件和病毒,如果垃圾杀手和ClamAV的集成到Postfix。 可以使用浏览器访问这些图形,而pflogsumm(“Postfix日志输入摘要”)可用于发送每封邮件的Postfix活动报告。

下面我将介绍如何安装和的Debian Sarge,Ubuntu的公鸭(6.06 LTS),和Fedora Core 5配置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 Sarge

2.1邮件

Debian Sarge包含Mailgraph和pflogsumm的包,所以我们只需安装这些。 我们还安装rrdtool存储Mailgraph所需的数据来绘制图形:

apt-get install rrdtool mailgraph

你会被问到几个问题:

邮件是否开机? < - 是的
邮件应该使用哪个日志文件? < - /var/log/mail.log
清除RRD文件? < - 是的

那么还有这个问题:

Count incoming mail as outgoing mail?

如果您已将内容过滤器(如垃圾邮件和病毒扫描)集成到Postfix中(如本教程中所示: 使用Postfix,Courier和MySQL(+ SMTP-AUTH,配额,SpamAssassin,ClamAV)的虚拟用户和域名 ),然后回答不要以为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将报告垃圾邮件和病毒,只有当您将Postfix中的内容过滤器(如amavisd)集成到配置为使用SpamAssassin和ClamAV来标记垃圾邮件和病毒邮件时。 如果您不这样做,您仍然会看到图形,但没有垃圾邮件和病毒报告。

2.2 pflogsumm

要安装pflogsumm,我们运行

apt-get install pflogsumm

我们希望pflogsumm每天由cron工作运行,并将报告发送到postmaster@example.com 。 因此,我们必须配置我们的系统,它写入一个邮件日志文件24小时,然后启动下一个邮件日志,以便我们可以将旧邮件日志提供给pflogsumm。 因此,我们配置logrotate(这是旋转系统日志文件的程序):打开/etc/logrotate.conf并在其中添加行#系统特定日志后,附加以下节;

vi /etc/logrotate.conf
/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 。 它在电子邮件客户端中看起来像这样:

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏