Zabbix : monitorer un serveur Postfix

Boris HUISGEN March 30, 2012

administration monitoring zabbix postfix

Zabbix : monitoring de Postfix

Voici les différents éléments de configuration nécessaires à la supervision d’un serveur Postfix avec Zabbix.

En premier lieu, rajouter un élément dans le fichier de configuration de l’agent Zabbix /etc/zabbix/zabbix_agentd.conf pour reporter le nombre actuel de mails dans la file d’exécution :

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

Ne pas oublier de créer l’élément dans l’interface web de Zabbix et le graphique associé.

Pour monitorer les statistiques sur les messages traités par Postfix, il convient d’installer les programmes pflogsumm ainsi que_ logcheck_. Le premier permet d’analyser le journal du serveur et produire un rapport détaillés sur les messages. _logcheck_ apporte quant à lui la commande _logtail_ qui va permettre d’accélérer le temps de parsing du fichier log en gardant un offset de position à chaque passe par _pflogsumm_.

L’analyse s’effectue par ce script qu’il conviendra de placer en cron selon l’intervalle de temps désiré. Le script se charge d’envoyer les différentes valeurs au serveur Zabbix gràce à la commande zabbix_sender :

#!/bin/bash
PFLOGSUMM=/usr/bin/pflogsumm.pl
MAILLOG=/var/log/mail.log
LOGTAIL=/usr/sbin/logtail
DAT1=/tmp/zabbix-postfix-offset.dat
DAT2=$(mktemp)
ZABBIX_SENDER=/usr/bin/zabbix_sender
ZABBIX_CONF=/etc/zabbix/zabbix_agentd.conf
DEBUG=0

function zsend {
    key="postfix.`echo "$1" | tr ' -' '_' | tr '[A-Z]' '[a-z]' | tr -cd [a-z_]`"
    value=`grep -m 1 "$1" $DAT2 | awk '{print $1}'`

    [ ${DEBUG} -ne 0 ] && echo "Send key \"${key}\" with value \"${value}\"" >&2
    $ZABBIX_SENDER -c $ZABBIX_CONF -k "${key}" -o "${value}" 2>&1 >/dev/null
}

$LOGTAIL -f $MAILLOG -o $DAT1 | $PFLOGSUMM -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd --warning_detail=0 > $DAT2

zsend received
zsend delivered
zsend forwarded
zsend deferred
zsend bounced
zsend rejected
zsend held
zsend discarded
zsend "reject warnings"
zsend "bytes received"
zsend "bytes delivered"
zsend senders
zsend recipients

rm $DAT2

Template XML : [download id=15]

Source : http://www.zabbix.com/wiki/howto/monitor/mail/postfix/monitoringpostfix

See also

Postfix : patch pour la gestion des alias par fichier .forward
Read more
Zabbix : monitoring Nginx / PHP-FPM / MySQL
Read more
Zabbix : script de notification d’alertes XMPP / Jabber
Read more