Назад | Перейти на главную страницу

Как контролировать почтовую очередь postfix с помощью monit?

Есть ли способ контролировать почтовую очередь 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 выдает предупреждение.