监控 Postfix (或 Cyrus IMAP) 上的消息传递

监控 Postfix (或 Cyrus IMAP) 上的消息传递

有基于 Postfix 的邮件服务器。我需要监控哪些邮件已发送给最终用户?哪些未发送给最终用户?在处理每封邮件时,我需要从其附件中以 XML 格式获取一些信息。我如何通过这种方式监控邮件的发送情况?

谢谢!

答案1

我需要监控哪些消息已发送给最终用户?哪些没有?

所有失败和成功的投递都会记录到/var/log/maillog。您可能希望使用 Nagios 的检查日志文件插入:

Name       : check_logfiles
Arch       : x86_64
Version    : 3.4.2
Release    : 1.el5.rf
Size       : 39 k
Repo       : rpmforge
Summary    : Logfile check  plugin for nagios
URL        : http://sourceforge.net/projects/check-logfiles
License    : GPL
Description: check_logfiles is a plugin for Nagios which searches for patterns in logfiles. It is capable of scanning
           : multiple logfiles and their rotated ancestors in a single run.

定义一个命令来检查此文件:

command[check_postfix]=/usr/bin/sudo /usr/local/nagios/libexec/check_logfiles \
    --tag=postfix \
    --logfile=/var/log/maillog \
    --warningpattern="warning" \
    --criticalpattern="critical"

示例结果:

正常 - 没有错误或警告|postfix_lines=0 postfix_warnings=0 postfix_criticals=0 postfix_unknowns=0


在处理每条消息时,我需要从其附件中获取一些 XML 格式的信息

您的意思是要过滤某些附件文件类型。如果是,请查看mime_header_checks指示。

通过添加以下行来定义标题检查/etc/postfix/main.cf

mime_header_checks = regexp:/etc/postfix/mime_header_checks

向此文件附加一些文件扩展名:

/name=[^>]*\.(exe|bat|bin|sh)/ REJECT

重新启动 Postfix 并使用以下命令进行测试mutt

echo "hello" | mutt -s "Test mail" -a attach.sh [email protected]

您应该在日志文件中看到被拒绝的消息:

11 月 9 日 11:35:08 199 postfix/cleanup[27318]: F1649BFB0176: 拒绝:标题 Content-Disposition:附件;filename="attach.sh" 来自本地;来自= 至=:5.7.1 邮件内容被拒绝

相关内容