====== 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