Zabbix : monitorer un serveur Postfix

Boris HUISGEN
Boris HUISGEN
|

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/zabbixagentd.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 _zabbixsender :

#!/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

Boris HUISGEN
Boris HUISGEN
Blog owner
  • #postfix
  • #zabbix