Menu

Stacks Image 1324
Cet article décrit l'installation du plugin check_vmware_snapshots de l'excellent site Consol Labs. Celui-ci supervise les snapshots d'un ESX ou d'un vCenter. Vous aurez juste besoin du SDK for Perl de VMware.

1 Pré requis

L'application vSphere 4.1 SDK for Perl de VMware doit être installée sur votre serveur de supervision. Voir l'article Superviser un serveur ESX avec le vSphere SDK for Perl

2 Installation du plugin check_vmware_snapshots.pl

Le plugin se trouve sur l'excellent site allemand Consol Labs à cette page. Ensuite, il suffit de copier l'archive dans votre dossier favori pour les archives et d'exécutez les commandes suivantes.
tar xvzf check_vmware_snapshots_0.13.tar.gz
cp check_vmware_snapshots.pl /usr/local/plugins/libexec
cd /usr/local/plugins/libexec
chown centreon-engine: check_vmware_snapshots.pl
chmod +x check_vmware_snapshots.pl
Le plugin est prêt à l'utilisation par Centreon.

3 Utilisation du plugin check_vmware_snapshots.pl

Son utilisation est relativement simple. Il permet de vérifier le nombre de snapshots par machine et leur durée d'existence en jour.

3.1 Nombre de snapshots

Le plugin permet de vérifier le nombre de snapshot par VM. Nous avons la possibilité de fixer des limites pour les valeurs CRITICAL et WARNING. Les alarmes se déclencheront aux valeurs supérieures de ces limites. Exemple : vous avez fixé à 3 la valeur Critical, celle-ci se déclenchera lorsque la VM contiendra 4 snapshots.
./check_vmware_snapshots.pl --server 172.16.209.220 --username supervision --password Esx2013# --mode count --critical 4 --warning 3

3.2 Date du snapshot

Le plugin permet de vérifier l'ancienneté du ou des snapshots par VM. Nous avons la possibilité de fixer des limites (jours) pour les valeurs CRITICAL et WARNING. Les alarmes se déclencheront à la durée en jours. Exemple : vous avez fixé à la valeur Critical à 10, celle-ci se déclenchera lorsqu'un des snaphosts de la VM atteindra le 10 jours de création ou plus. La valeur 0 correspond à la création du snapshot à la date du jour.
./check_vmware_snapshots.pl --server 172.16.209.220 --username supervision --password Esx2013# --mode age --critical 10 --warning 5

3.3 Filtrage de VM

Avec les options blacklist et whitelist, vous pouvez restreindre la vérification des VM dans un ESX (ou un vCenter). exemple nous voulons seulement les VM commençant par DEV

./check_vmware_snapshots.pl --server 172.16.209.220 --username supervision --password Esx2013# --mode age --critical 10 --warning 5 --whitelist "DEV*"

OK - No outdated VM snapshots found. | outdated_snapshots=0snapshots;5;10

Stacks Image 5224
Remarques
Attention, votre filtre doit retourner un résultat, sinon vous avez droit à un beau message d'erreur.
Use of uninitialized value $label in pattern match (m//) at /usr/share/perl5/Nagios/Plugin/Performance.pm line 65.
Use of uninitialized value $label in sprintf at /usr/share/perl5/Nagios/Plugin/Performance.pm line 68.
Use of uninitialized value $label in pattern match (m//) at /usr/share/perl5/Nagios/Plugin/Performance.pm line 65.
Use of uninitialized value $label in sprintf at /usr/share/perl5/Nagios/Plugin/Performance.pm line 68.
OK | =0;5;10

3.4 Modification du plugin

J'ai réalisé une petite modification du plugin pour éviter l'erreur de filtrage. Le plugin vous retournera Unknown au lieu des messages d'erreurs. Vous trouverez le plugin modifié.ugin modifié ici.
./check_vmware_snapshots_modif.pl --server 172.16.209.220 --username supervision --password Esx2013# --mode age --critical 10 --warning 0 --blacklist "DEV"
UNKNOWN - unknown VM

4 Configuration Centreon

Nous allons installer ce plugin sur notre plateforme Centreon. Nous utiliserons l'hôte ESX 4.1 créé précédemment dans l'article Superviser un serveur ESX avec le vSphere SDK for Perl.

4.1 Les macros personnalisées

Le plugin check_vmware_snapshots_api a besoin d'une connexion (USERNAME et PASSWORD) au serveur ESX, il utilise aussi un paramètre appelé COMMAND. Pour les alertes nous aurons besoins des valeurs CRITICAL et WARNING. Voici les macros personnalisées configurées sur notre serveur de supervision. En fait ce sont les mêmes que l'article précédent Configuration du plugin check_vmware_api.pl
Stacks Image 5125
Les macros personnalisées nécessaire au plugin
Pour ajouter nos macros, on utilisera le script que vous trouverez sur mon blog.
Centreon-Clapi
./create_macrocustom.sh _SERVICEWARNING 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICECRITICAL 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICECOMMAND 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEPASSWORD 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEUSERNAME 0 Central "Custom Macro"

4.2 La commande check_esx_snapshots

La création de la commande nécessitera l'utilisation de nos macros personnalisées. L'utilisation des options whitelist et blacklist peuvent être rajouté dans la macro Command.
Stacks Image 5136
La commande check_esx_snapshots
$USER1$/check_vmware_snapshots.pl --server $HOSTADDRESS$ --username $_SERVICEUSERNAME$ --password $_SERVICEPASSWORD$ --mode $_SERVICECOMMAND$ --critical $_SERVICECRITICAL$ --warning $_SERVICEWARNING$
Centreon-Clapi
./centreon -u admin -p password -o CMD -a ADD -v 'check_esx_snapshots;2;$USER1$/check_vmware_snapshots.pl --server $HOSTADDRESS$ --username $_SERVICEUSERNAME$ --password $_SERVICEPASSWORD$ --mode $_SERVICECOMMAND$ --critical $_SERVICECRITICAL$ --warning $_SERVICEWARNING$'

./centreon -u admin -p password -o CMD -a setparam -v 'check_esx_snapshots;enable_shell;0’

4.3 Les modèles de services

Nous créons deux modèles de services, le premier vérifiera la date des snapshots et le second le nombre de snapshots par machine.
Stacks Image 5142
Le modèle SERV_AGE_SNAP
Le modèle ci-dessus renverra un message Warning pour des snapshots ayant été créés il y a 5 jours et un message Critical pour des snapshots de 8 jours.
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_AGE_SNAP;ESX_AGE_SNAP;generic-service'

./centreon -u admin -p password -o STPL -a setparam -v 'SERV_ESX;check_command;check_esx_snapshots'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;username;supervision'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;password;Esx2013#'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;command;age'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;critical;8'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;warning;5’
Stacks Image 5139
Le modèle SERV_NB_SNAP
Le modèle ci-dessus renverra un message Warning pour un nombre de snapshot supérieur à 1 par machine et un message Critical pour un nombre de snapshots supérieurs à 2 par machine.
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_NB_SNAP;ESX_NB_SNAP;generic-service'

./centreon -u admin -p password -o STPL -a setparam -v 'SERV_ESX;check_command;check_esx_snapshots'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;username;supervision'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;password;Esx2013#'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;command;count'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;critical;2'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX;warning;1’
Stacks Image 5145
Ajout des modèles de service au modèle d'hôte OS-VMware-ESX
Ne pas oublier de lier les modèles de service à un modèle d'hôte, dans notre cas nous utiliserons le modèle OS-VMware-ESX créé dans un autre article.
Centreon-Clapi
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_NB_SNAP;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_AGE_SNAP;OS-VMware-ESX’

4.4 Application à un hôte

Stacks Image 5148
Application des modèle sur l'hôte ESX
Centreon-Clapi

On appliquera les templates pour initialiser les services.
./centreon -u admin -p password -o HOST -a applytpl -v "ESX_4.1"

4.5 Vérification

Appliquez la configuration et vérifiez le résultat.
Stacks Image 5183
Les deux services en action
Les services sont OK, toutes les conditions sont réunies. Une VM a un snapshot, mais comme nous avons fixé la valeur Warning à 1, le service retournera OK. Voici deux exemples d'alertes.
Stacks Image 5191
2 snapshots ont plus de 6 jours et une VM contient 3 snapshots
Stacks Image 5188
Une VM contient deux snapshots
comments powered by Disqus