Есть ли способ контролировать почтовую очередь postfix с помощью monit? доступные скрипты просто проверяют, вверх / вниз / память или процессор. Я хочу получать уведомления, когда очередь начнет заполняться. Было бы неплохо установить мониторы в разные очереди, чтобы иметь возможность реагировать соответствующим образом.
Вы должны использовать «программную» функцию Monit.
Если ваш monitrc
файл включает include /etc/monit.d/*.cfg
, то в вашем /etc/monit.d
, создать .cfg
файл с содержимым (добавьте соответствующий оператор включения в свой monitrc
файл, если вы не включаете все *.cfg
файлы в /etc/monit.d
)
check program mail-queue path "/usr/local/sbin/check_postfix_queue"
if status != 0 then alert
Затем создайте скрипт /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
MAXMSG - это ограничение очереди сообщений: если количество сообщений превышает этот параметр, monit выдает предупреждение.