有基于 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 邮件内容被拒绝