Postfix con Zabbix (I)

logo_zabbix

Para monitorizar, en modo muy básico, la cola de Postfix podemos utilizar el comando “mailq”. Pasemos a leer una descripción de la información que ofrece este binario.

Lista la cola de mails. Cada entrada muestra el ID de archivo de la cola, tamaño de mensaje, tiempo de llegada, remitente, y el receptor que todavía espera a que el mail sea entregado. Si el mail no pudo ser entregado a tiempo, la causa del fallo será mostrada. Este modo de operación es implementado ejecutaqndo el comando postqueue

Una vez sabido esto, utilizaremos mailq de la siguiente forma:

# mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'

mailq nos muestra mucha cantidad de información, seleccionamos todo lo que no sea “Mail queue is empty” y luego contabilizamos las líneas que coinciden con la expresión regular.

Añadimos esto al agente de zabbix:

UserParameter=postfix.queue,mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'

También sería interesante crear un item que monitorizase el número de procesos de Postfix, muy útil en combinación con la monitorización de la cola.

Para eso, podemos editar un item tipo proc.num[httpd], hacemos un clone del item, y cambiamos su key por proc.num[,postfix] lo que nos mostrará todos los procesos que el usuario postfix está ejecutando en la máquina. Con este par de detalles, ya tenemos algo visible por donde empezar.

Y se me olvidaba comentar que podemos crear un Trigger que monitorize el item de número de procesos de Postfix para que nos avise si creemos que estamos ante algo no normal.

{host-a-monitorizar:proc.num[,postfix]. last( 0 ) }>150

Luego creamos la acción y listo.

Saludos 🙂

4 thoughts on “Postfix con Zabbix (I)

  1. Hola, realicé todos los pasos y me funcionó a medias.

    El tema es que cuando ejecuto # mailq | grep -v “Mail queue is empty” | grep -c ‘^[0-9A-Z]’
    Me da el número verdadero de mails en cola.

    Pero si ejecuto # zabbix_get -s IP.DE.MI.SERVER -p 10050 -k”proc.num[,postfix]”
    Me da una cantidad diferente

    Aclaro que obviamente los ejecuto uno seguido del otro.

    Por favor, me gustaría saber en que estoy fallando y como lo puedo solucionar.

    Saludos!

  2. Cuando ejecuto:
    # mailq | grep -v “Mail queue is empty” | grep -c ‘^[0-9A-Z]‘
    Me da el número real de mails en cola.

    pero
    # zabbix_get -s IP.DE.MI.SERVER -p 10050 -k”proc.num[,postfix]”
    Me devuelve la cantidad de procesos postfix, lo mismo que si los cuento en un #ps aux | grep postfix

    Ya eh consultado en foros de zabbix y todos dicen que haga lo mismo que proponés aquí en tu blog.

    Muchas gracias… Saludos!

  3. Hola Rubén… Haciendo uso de la bendita forma de prueba y error conseguí solucionar el problema. Aquí comparto para futuros lectores.

    Al agente zabbix agragar:
    UserParameter=postfix.mailq, postqueue -p | grep -v “Mail queue is empty” | grep -c ‘^[0-9A-Z]’

    Y la key del ítem debe ser:
    postfix.mailq

    También les dejo la expresión del trigger para que avise cuando la cola llegue a 200 emails.
    {Template_App_Postfix:postfix.mailq.last(0)}=200

Leave a Reply

Your email address will not be published. Required fields are marked *