====== 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 [[:repo_fws|notre dépôt de RPMS]])
===== Sources =====
Les scripts sont disponibles dans notre [[https://git.fws.fr/fws/zabbix-agent-addons|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