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)

Sources

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

Installation manuelle

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