La mise en place d’un item trapper est nécessaire lorsque le temps d’obtention de l’information à monitorer est supérieur au timeout imposé au niveau de l’agent Zabbix (par défaut de 5 secondes). Avec un item trapper, l’agent ne se charge ni de récupérer, ni d’envoyer l’information au serveur : tout est déporté à un script externe.

En guise d’exemple, ce script récupère le décalage temporel d’un hôte par rapport à un serveur NTP externe :

root@host:/etc/zabbix/scripts# cat ntpdate_offset.sh
#!/bin/sh

ZABBIX_SENDER=/usr/local/bin/zabbix_sender
ZABBIX_CONF=/usr/local/etc/zabbix/zabbix_agentd.conf

VALUE=$(ntpdate -q fr.pool.ntp.org | grep 'adjust time server' | awk '{print $10}')
echo - ntpdate.offset $VALUE | $ZABBIX_SENDER -c $ZABBIX_CONF -i -

Son exécution est à planifier en cron selon la fréquence de monitoring souhaitée. Au niveau du serveur Zabbix, il reste à créer et activer l’item ntpdate.offset en sélectionnant le type trapper.