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
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
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.
$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.
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’
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’
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
Centreon-Clapi
On appliquera les templates pour initialiser les services.
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.
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.