如何使用monit监控postfix邮件队列?

Sea*_*all 1 monitoring postfix monit

有没有办法使用 monit 监控 postfix 邮件队列?可用的脚本只是检查、启动/关闭/内存或 CPU。我想在队列开始填满时收到通知。能够在不同的队列上设置监视器以便能够做出适当的反应会很好。

小智 6

您必须使用 Monit 的“程序”功能。

如果您的monitrc文件包含include /etc/monit.d/*.cfg,则在您的 中/etc/monit.d,创建一个.cfg包含内容的monitrc文件(如果不包含所有*.cfg文件,请在文件中添加适当的 include 语句/etc/monit.d

check program mail-queue path "/usr/local/sbin/check_postfix_queue"
    if status != 0 then alert
Run Code Online (Sandbox Code Playgroud)

然后/usr/local/sbin/check_postfix_queue使用以下内容创建脚本:

#!/bin/bash

MAXMSG=20
MSG=$( postqueue -p | egrep '\-\- [0-9]+ Kbytes in [0-9]+ Request[s]*\.' | awk '{ print $5 }'  )
[ ${MSG:-0} -le $MAXMSG ] && exit 0 || exit 1
Run Code Online (Sandbox Code Playgroud)

MAXMSG 是消息队列限制:如果消息数量高于该参数,则 monit 发出警报。