15 février 2010
Comment récupérer en une ligne le % d'espace disque utilisé sous Linux et l'intégrer dans zabbix
J'ai eu quelques soucis ce matin avec des filesystems protégés (Permission denied) sous Linux, ceux-ci ne remontent pas dans l'application zabbix.
Comment faire dans ce cas, en une ligne pour récupérer le pourcentage d'espace disque utilisé par un filesystem ?
La première étape (en étant root) est d'autoriser zabbix a effectué un df et ce dans cas l'inscrire dans le fichier /etc/sudoers de cette manière :
User_Alias MONITORING = zabbix
Cmnd_Alias SYSTEM = /bin/df
MONITORING ALL=NOPASSWD: SYSTEM
Pour pouvoir exécuter le sudo à distance, vous devez vérifier que la ligne suivante est bien commentée :
#Defaults requiretty
Vous testez ensuite pour voir si ça fonctionne :
[zabbix@myHost ~]$ sudo df /Path/myFs | tail -n 1
3096336 70216 2868836 3% /Path/myFs
Puis en une ligne, il nous faut récupérer le résultat de la 4e colonne sans le % !
[zabbix@myHost ~]$ VAR=`sudo /bin/df /Path/myFs | tail -n 1 | /bin/awk '{ print $4 }' `;echo ${VAR%*\%}
Je stocke ça dans un script ksh :
#!/usr/bin/ksh
FS=${1}
VAR=`sudo /bin/df $FS | tail -n 1 | /bin/awk '{ print $4 }' `;echo ${VAR%*\%}
Puis, nous ajoutons la clé dans le fichier de configuration de zabbix : zabbix_agentd.conf, nous utiliserons des variables pour nous éviter de créer autant de clés que de filesystems protégés.
UserParameter=df[*],/home/myScript/userDf.ksh $1
Nous redémarrons l'agent (zabbix_agentd stop and start).
Nous configurons ce nouveau test dans l'interface web en deux étapes :
- création d'un nouvel item
- création d'un nouveau trigger
Voilà, voilà :)