Scripts supplémentaires pour l'agent Zabbix

Nous maintenons quelques scripts pour améliorer le monitoring par l'agent Zabbix. Depuis la version 2.0.0, Zabbix supporte des fonctions de découvertes bas niveau: le serveur demande à l'agent une liste d'éléments, et pour chaque élément remonté, le serveur crée automatiquement les items, graphes, déclencheurs à partir de prototypes. De base, l'agent supporte:

  • net.if.discovery: remonte la liste des interface réseau
  • vfs.fs.discovery: remonte la liste des systèmes de fichiers

Les scripts contenus dans le paquet zabbix-agent-addons ajoutent:

  • ces mêmes fonctions, basées sur des scripts perl pour permettre un fonctionnement avec des agent d'une version antérieur à la 2.0.0
  • la découverte des machines sauvegardées par BackupPC
  • la découverte des volumes LVM, des groupes de volumes et des snapshots
  • la découverte des périphériques blocs
  • la découverte des disques supportant S.M.A.R.T.
  • la découverte des senseurs de température (modulo une configuration des commandes à lancer pour récupérer la valeur)
  • la découverte des onduleurs gérés par nut UPS
  • quelques autres scripts utiles (pour surveiller les onduleurs, le RAID logiciel etc…)

Tous ces scripts sont disponibles dans un paquet rpm nommé zabbix-agent-addons (voir notre dépôt de RPMS)

Les scripts sont disponibles dans notre dépôt GIT

Pour les distribution qui n'utilisent pas RPM, il est possible d'installer tout ceci de façon manuelle:

mkdir -p /etc/zabbix/zabbix_agentd.conf.d/
cd /etc/zabbix/zabbix_agentd.conf.d/
for F in backuppc.conf block_devices.conf filesystems.conf lvm.conf nut_ups.conf\
         raid_mdadm.conf raid_megaraid.conf sensors.conf smart.conf squid.conf net_interface.conf nut_ups.conf raid_hp.conf\
         drbd.conf gluster.conf; do
    wget "http://gitweb.firewall-services.com/?p=zabbix-agent-addons;a=blob_plain;f=zabbix_conf/$F;hb=HEAD" -O $F
done
mkdir -p /var/lib/zabbix/bin
cd /var/lib/zabbix/bin
for F in check_backuppc_sudo check_lvm_sudo check_raid_mdadm check_raid_megaraid_sudo \
         check_sensors_sudo check_smart_sudo check_drbd check_gluster_sudo disco_backuppc_sudo disco_block_devices \
         disco_filesystems disco_lvm_sudo disco_sensors disco_smart_sudo disco_net_interface disco_nut_ups \
         check_raid_hp_sudo disco_raid_megaraid_sudo disco_raid_mdadm disco_drbd disco_gluster_sudo\
         util_convert_sensors_ini util_generate_sensors_ini; do
    wget "http://gitweb.firewall-services.com/?p=zabbix-agent-addons;a=blob_plain;f=zabbix_scripts/$F;hb=HEAD" -O $F
done
chmod +x /var/lib/zabbix/bin/*

Il faut aussi installer des libs, par exemple sur Debian

mkdir -p /usr/local/lib/site_perl/Zabbix/Agent/Addons
cd /usr/local/lib/site_perl/Zabbix/Agent/Addons
for F in Disks.pm UPS.pm; do
    wget "http://gitweb.firewall-services.com/?p=zabbix-agent-addons;a=blob_plain;f=lib/Zabbix/Agent/Addons/$F;hb=HEAD" -O $F
done

Il faudra aussi installer les dépendances:

apt-get install libconfig-simple-perl libjson-perl libfile-which-perl smartmontools lm-sensors

Il ne reste plus qu'à:

  • Autoriser l'utilisateur zabbix à exécuter tous les scripts se temrinant par _sudo avec les droits root, sans mot de passe :
echo "Cmnd_Alias ZABBIX_AGENT = /var/lib/zabbix/bin/*_sudo" >> /etc/sudoers.d/zabbix
echo "zabbix ALL=(root) NOPASSWD: ZABBIX_AGENT" >> /etc/sudoers.d/zabbix
chmod 0440 /etc/sudoers.d/zabbix
  • Il faut inclure tout les fragments de configuration de Zabbix, en ajoutant la directive suivante dans le fichier de configuration principal de l'agent (en général /etc/zabbix/zabbix_agentd.conf)
Include=/etc/zabbix/zabbix_agentd.conf.d/
  • Ou, si votre agent ne supporte pas la directive Include, il faut tout concaténer dans le fichier principal
cat /etc/zabbix/zabbix_agentd.conf.d/* >> /etc/zabbix/zabbix_agentd.conf
  • tuto/monitoring/zabbix_agent_addons.txt
  • Dernière modification: 22/10/2015 14:44
  • par dani