Como monitorar a fila de mensagens postfix usando monit?

1

Existe uma maneira de monitorar a fila de mensagens postfix usando monit? os scripts disponíveis são apenas check, up / down / memory ou CPU. Eu gostaria de avisos quando a fila começa a encher. seria bom poder definir monitores nas diferentes filas para poder reagir adequadamente.

    
por Sean Kimball 09.06.2015 / 17:01

1 resposta

5

Você tem que usar o recurso "programa" do Monit.

Se o seu arquivo monitrc incluir include /etc/monit.d/*.cfg , em /etc/monit.d , crie um arquivo .cfg com o conteúdo (adicione a instrução include apropriada no arquivo monitrc se você não incluir todos os *.cfg arquivos em /etc/monit.d )

check program mail-queue path "/usr/local/sbin/check_postfix_queue"
    if status != 0 then alert

Em seguida, crie o script /usr/local/sbin/check_postfix_queue com este conteúdo:

#!/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 é o limite da fila de mensagens: se o número de mensagens estiver acima desse parâmetro, monit emite um alerta.

    
por 11.08.2015 / 17:09