Postfix监控与邮件和pflogsumm在Debian Lenny

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链接

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

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

支付宝扫一扫打赏

微信扫一扫打赏