Vous êtes ici:

Menu

Plugin Quotas Tree Celerra

Création d’un plugin Nagios pour superviser les Quotas Tree d’un NAS Celerra


Depuis quelques temps, j’ai la responsabilité d’assurer l’administration d’un NAS NS 42 G d’EMC. Nous utilisons les Quotas Tree pour les partages utilisateurs. Pour en assurer la maintenance, nous utilisons la console Web du Celerra. Malheureusement il n’existe pas, tout du moins livré en standard, d’outil permettant une administration automatique avec une gestion d’alerte (il existe bien une gestion de notification mais un peu usine à gaz). Ayant une supervision Nagios sur le site, j’ai donc réfléchi à l’utilisation de celle-ci pour les Quotas Tree.
En surfant sur le web, j’ai constaté qu’il n’y avait pas beaucoup d’informations sur la supervision d’un NAS Celerra d’EMC. Donc, j’ai pris mon courage à deux mains et je me suis dis qu’il fallait créer un plugin Nagios de toute pièce.

Utilisation du plugin check_by_ssh


Je me suis orienté sur la création d’un script sur la Control Station du Celerra pour me retourner les valeurs nécessaires à Nagios. Pour exécuter un script à distance sur Linux, rien ne vaut le protocole ssh installé généralement sur la majorité des distribution Linux. La Control Station d’EMC ne déroge pas à la règle, c’est une bonne vielle Red-Hat modifiée à la sauce EMC.
Je ne rentrerai pas en détail sur le fonctionnement de ssh et de son plugin check_by_ssh installé normalement dans Nagios. Vous trouverez toutes les informations nécessaires sur le Wiki de Monitoring-fr.org réalisé par Pierre Levasseur. On partira du principe que vous avez réalisé votre approbation avec la clé publique entre Nagios et la Control Station.
Attention, il est important d’avoir une session Nagios valide sur le serveur de Supervision pour le dépôt de la clé. A ce stade vous devez pouvoir lancer la commande avec l’utilisateur nagios :
nagios@SERVEUR_NAGIOS: ./check_by_ssh -H -l nasadmin –E 31 -C ls
Du serveur Nagios, vous devez être capable de lister le répertoire Home de l’utilisateur nasadmin. L’astuce de cette ligne de commande réside dans l’ajout du paramètre -E 31 qui inhibe le message legal d’EMC à l’ouverture de session.

Création d’un script


Dans l’exploitation de notre site, nous avons besoin de superviser les Quotas Tree de chaque FileSytem du Celerra. Nous avons privilégié les alertes des limites Softs et Hard des Quotas Tree. Comme il relativement complexe de récupérer le nom du Quotas Tree en alarme (deux syntaxes différentes pour la commande nas_quotas) nous avons privilégié la simplicité et nous remonterons que la somme des Quotas Tree en alarme. Voici le script à insérer dans le home directory de nasadmin.
#!/bin/bash
# réalisé le 01/04/2010
# script pour retourner le nb de Quota tree ainsi que le nonbre de soft limite et hard limite
# paramètre $1 : nom du File System

# variable d'environement pour la commande nas_quota
NAS_DB=/nas
export NAS_DB

# pourcentage à atteindre pour la valeur critique
quotaHard=97

LUsed=`/nas/bin/nas_quotas -report -tree -fs $1 | grep "|#" | cut -d "|" -f3`
LSoft=`/nas/bin/nas_quotas -report -tree -fs $1 | grep "|#" | cut -d "|" -f4`
LHard=`/nas/bin/nas_quotas -report -tree -fs $1 | grep "|#" | cut -d "|" -f5`

indice=0
for i in $LUsed
do
let indice=$indice+1
TabUsed[$indice]=$i
done
indice=0
for i in $LSoft
do
let indice=$indice+1
TabSoft[$indice]=$i
done
indice=0
for i in $LHard
do
let indice=$indice+1
TabHard[$indice]=$i
done

qteUsed=$indice
qteOk=0
qteSoft=0
qteHard=0

for j in `seq $indice` ; do
let limiteHard=$((quotaHard*TabHard[$j]/100))
if [ ${TabUsed[$j]} -gt $limiteHard ]
then
let qteHard=$qteHard+1
else
if [ ${TabUsed[$j]} -gt ${TabSoft[$j]} ]
then
let qteSoft=$qteSoft+1
else
let qteOk=$qteOk+1
fi
fi
done
info="Erreur!"
if [ $qteHard -gt 0 ]
then
info="CRITICAL"
info_valeur=2
else
if [ $qteSoft -gt 0 ]
then
info="WARNING"
info_valeur=1
else
info="OK"
info_valeur=0
fi
fi

#on retourne les valeurs pour Nagios
#used est remplacé par quota_ok pour éviter la confusion avec used (disk) dans Centreon pour les graphes
diag="QuotaTree $info - Quota Tree sur $1 sont $info TOTAL: $qteUsed LIMITE SOFT: $qteSoft LIMITE HARD: $qteHard | quota_ok=$qteUsed soft=$qteSoft hard=$qteHard"
echo $diag
#on retourne l'état de la commande 0 : OK, 1 : Warning, 2 : Critique
exit $info_valeur
Ensuite il suffira de rendre le script exécutable et de vérifier sur la Control Station le bon fonctionnement de celui-ci.

Création de la commande et du service Nagios


Il ne reste plus qu’à créer la commande Nagios. Pour ma part, j’utilise l’interface graphique de Centreon. Voici le résultat
define command{
command_name check_by_ssh
command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -l $ARG1$ -E 31 -C $ARG2$
}
et pour le service
define service{
host_name Celerra
service_description quota-tree
use generic-service
check_command check_by_ssh!nasadmin!"./quotasNum "
}
Et voila un plugin remontant les alarmes des Quotas Tree d’un Celerra NS 42 G. Il ne reste plus qu’à paramétrer les alertes en fonction de vos exigences.
blog comments powered by Disqus
 Vous êtes ici: