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 drbd.conf filesystems.conf httpd.conf lvm.conf nginx.conf pmg.conf \
         qmail.conf raid_mdadm.conf sa_learn.conf sensors.conf squid.conf vdo.conf \
         zimbra.conf block_devices.conf file_descr.conf gluster.conf icmp.conf \
         net_interface.conf nut_ups.conf pve.conf raid_hp.conf raid_megaraid.conf \
         samba.conf smart.conf unifi.conf zfs.conf; do
    wget "https://git.fws.fr/fws/zabbix-agent-addons/raw/branch/master/zabbix_conf/$F" -O $F
done
mkdir -p /var/lib/zabbix/bin
cd /var/lib/zabbix/bin
for F in check_backuppc_sudo check_lvm_sudo check_qmail_sudo check_sensors_sudo check_zfs \
         disco_filesystems disco_nginx disco_raid_mdadm disco_unifi util_generate_sensors_ini \
         check_drbd check_nginx check_raid_hp_sudo check_smart_sudo check_zimbra_sudo \
         disco_gluster_sudo disco_nut_ups disco_raid_megaraid_sudo disco_vdo_sudo \
         check_gluster_sudo check_nmblookup check_raid_mdadm check_squid disco_backuppc_sudo \
         disco_httpd disco_pmg_sudo disco_sensors disco_zfs check_httpd check_pmg_sudo \
         check_raid_megaraid_sudo check_unifi disco_block_devices disco_lvm_sudo \
         disco_pve_sudo disco_smart_sudo disco_zimbra_sudo check_icmp_sudo check_pve_sudo \
         check_sa_learn_sudo check_vdo_sudo disco_drbd disco_net_interface disco_raid_hp_sudo \
         disco_squid util_convert_sensors_ini ; do
    wget "https://git.fws.fr/fws/zabbix-agent-addons/raw/branch/master/zabbix_scripts/$F" -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 "https://git.fws.fr/fws/zabbix-agent-addons/raw/branch/master/lib/Zabbix/Agent/Addons/$F" -O $F
done

Il faudra aussi installer les dépendances:

apt install libconfig-simple-perl libjson-perl libfile-which-perl libstatistics-distributions-perl smartmontools lm-sensors fping 

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: 27/11/2019 15:51
  • par dani