![Stacks Image 75614](files/stacks-image-12f8b97-140x90.png)
Maintenant que notre architecture est prête pour la supervision, je vous décrire ma méthode pour configurer Centreon. Nous allons utiliser les macros personnalisées et les modèles d'hôtes et services pour automatiser au maximum l'ajout de serveur ESX.
![Stacks Image 5026](files/stacks-image-fa0737e-48x46.png)
Si vous avez activé syslog sur votre serveur ESXi, vous remarquerez une augmentation de messages dus à la connexion du plugin check_vmware_api.pl comme le montre cette copie d'écran.
![Voila_Capture2799](files/voila_capture2799.png)
1 Les macros personnalisées
Le plugin check_vmware_api a besoin d'une connexion (USERNAME et PASSWORD) au serveur ESX, il utilise aussi deux paramètres appelés COMMAND et SUBCOMMAND. Pour les alertes nous aurons besoins des valeurs CRITICAL et WARNING. Voici les macros personnalisées configurées sur notre serveur de supervision.
![Stacks Image 4889](files/stacks-image-5dcb8a9-800x268.png)
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 _SERVICESUBCOMMAND 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEPASSWORD 0 Central "Custom Macro"
./create_macrocustom.sh _SERVICEUSERNAME 0 Central "Custom Macro"
2 Les commandes
Nous allons créer deux types de commande, la première commande servira pour récupérer des valeurs de statut ou de recommandation. Cette commande, que nous appellerons check_esx, n'utilise pas les valeurs CRITICAL et WARNING. La seconde commande, que nous appellerons check_esx_limite, utilise ces valeurs. Voici en images ces deux commandes.
![Stacks Image 4899](files/stacks-image-c7b5133.png)
La commande check_esx
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_SERVICEUSERNAME$ -p $_SERVICEPASSWORD$ -l $_SERVICECOMMAND$ -s $_SERVICESUBCOMMAND$
Centreon-Clapi
./centreon -u admin -p password -o CMD -a ADD -v 'check_esx;2;$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_SERVICEUSERNAME$ -p $_SERVICEPASSWORD$ -l $_SERVICECOMMAND$ -s $_SERVICESUBCOMMAND$'
./centreon -u admin -p password -o CMD -a setparam -v 'check_esx;enable_shell;0’
![Stacks Image 4902](files/stacks-image-a68e6bf.png)
La commande check_esx_limite
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_SERVICEUSERNAME$ -p $_SERVICEPASSWORD$ -l $_SERVICECOMMAND$ -s $_SERVICESUBCOMMAND$ -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Centreon-Clapi
./centreon -u admin -p password -o CMD -a ADD -v 'check_esx_limite;2;$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_SERVICEUSERNAME$ -p $_SERVICEPASSWORD$ -l $_SERVICECOMMAND$ -s $_SERVICESUBCOMMAND$ -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$'
./centreon -u admin -p password -o CMD -a setparam -v 'check_esx_limite;enable_shell;0’
3 Les modèles de service
Dans cet article, nous allons créer neuf modèles de service : CPU, MEMOIRE, VMFS, IO WRITE, IO READ, STATUS, ISSUES, NET et SWAP. Ils seront associés à un modèle d'hôte que l'on créera par la suite. Nous utiliserons deux modèles génériques qui auront pour tâche d'appliquer la connexion utilisateur, ces modèles s'appelleront SRV_ESX et SRV_ESX_LIMITE. Ensuite SERV_ESX_CPU, SERV_ESX_MEMOIRE, SERV_ESX_VMFS, SERV_ESX_IO_WRITE, SERV_ESX_IO_READ,SERV_ESX_NET et SERV_ESX_SWAP hériteront de SERV_ESX_LIMITE et SERV_ESX_STATUS et SERV_ESX_ISSUES hériteront de SERV_ESX.
En premiers lieux les modèle de service générique pour les ESX.
En premiers lieux les modèle de service générique pour les ESX.
![Stacks Image 4913](files/stacks-image-dd2c27f.png)
Le modèle SERV_ESX
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX;modele_esx;generic-service'
./centreon -u admin -p password -o STPL -a setparam -v 'SERV_ESX;check_command;check_esx'
./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;supervision'
![Stacks Image 4916](files/stacks-image-939ba7e.png)
Le modèle SERV_ESX_LIMITE
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_LIMITE;modele_esx;generic-service'
./centreon -u admin -p password -o STPL -a setparam -v 'SERV_ESX_LIMITE;check_command;check_esx_limite'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_LIMITE;username;supervision'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_LIMITE;password;supervision'
![Stacks Image 5023](files/stacks-image-fa0737e-48x46.png)
Pour un serveur ESXi 5.x, appliquez ce mot de passe : Esx2013#
![Voila_Capture2794](files/voila_capture2794.png)
Ensuite, nous passons aux modèles de service qui seront associés au modèle d'hôte ESX.
![Stacks Image 4945](files/stacks-image-e6bd177.png)
Le modèle ESX_CPU
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_CPU;ESX_CPU;SERV_ESX_LIMITE'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_CPU;critical;90'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_CPU;warning;80'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_CPU;command;cpu'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_CPU;subcommand;usage'
![Stacks Image 4942](files/stacks-image-acd568d.png)
Le modèle ESX_IO_READ
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_IO_READ;ESX_IO_READ;SERV_ESX_LIMITE'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_READ;critical;90'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_READ;warning;40'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_READ;command;io'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_READ;subcommand;read'
![Stacks Image 4939](files/stacks-image-8209467.png)
Le modèle ESX_IO_WRITE
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_IO_WRITE;ESX_IO_WRITE;SERV_ESX_LIMITE'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_WRITE;critical;90'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_WRITE;warning;40'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_WRITE;command;io'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_IO_WRITE;subcommand;write'
![Stacks Image 4936](files/stacks-image-259d5db.png)
Le modèle ESX_MEMORY
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_MEMORY;ESX_MEMORY;SERV_ESX_LIMITE'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_MEMORY;critical;90'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_MEMORY;warning;80'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_MEMORY;command;mem'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_MEMORY;subcommand;usage'
![Stacks Image 4933](files/stacks-image-48d1a46.png)
Le modèle ESX_SWAP
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_SWAP;ESX_SWAP;SERV_ESX_LIMITE'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_SWAP;critical;90'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_SWAP;warning;80'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_SWAP;command;mem'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_SWAP;subcommand;swap'
![Stacks Image 4930](files/stacks-image-648d6a4.png)
Le modèle ESX_NET
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_NET;ESX_NET;SERV_ESX_LIMITE'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_NET;critical;102400'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_NET;warning;204800'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_NET;command;net'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_NET;subcommand;usage'
![Stacks Image 4927](files/stacks-image-73a3011.png)
Le modèle ESX_ISSUES
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_ISSUES;ESX_ISSUES;SERV_ESX'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_ISSUES;command;runtime'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_ISSUES;subcommand;issues'
![Stacks Image 4924](files/stacks-image-7f19534.png)
Le modèle ESX_STATUS
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_STATUS;ESX_STATUS;SERV_ESX'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_STATUS;command;runtime'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_STATUS;subcommand;status'
![Stacks Image 4921](files/stacks-image-9dd6596.png)
Le modèle ESX_VFMS
Centreon-Clapi
./centreon -u admin -p password -o STPL -a ADD -v 'SERV_ESX_VMFS;ESX_VMFS;SERV_ESX_LIMITE'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_VMFS;critical;90%'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_VMFS;warning;80%'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_VMFS;command;vmfs'
./centreon -u admin -p password -o STPL -a setmacro -v 'SERV_ESX_VMFS;subcommand;datastore1 -o used'
Vous remarquerez l'astuce du modèle ESX_VFMS. J'ai rajouté l'option -o used dans la variable SUBCOMMAND pour obtenir la valeur d'occupation des données du datastore. Par défaut c'est l'espace libre qui est affiché.
4 Les modèles d'hôte
Maintenant, nous passons au modèle d'hôte. Nous l'appellerons OS-VMware-ESX. Nous associerons les modèles de service précédemment créés.
![Stacks Image 4952](files/stacks-image-a33a6d8.png)
Le modèle d'hôte OS-VMware-ESX
Centreon-Clapi
./centreon -u admin -p password -o HTPL -a add -v "OS-VMware-ESX;Modele OS VMware ESX;;;Central;"
![Stacks Image 4955](files/stacks-image-d812b3e-800x290.png)
Les relations des modèles de service
Centreon-Clapi
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_CPU;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_MEMORY;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_IO_READ;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_IO_WRITE;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_VMFS;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_SWAP;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_ISSUES;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_STATUS;OS-VMware-ESX'
./centreon -u admin -p password -o STPL -a sethost -v 'SERV_ESX_NET;OS-VMware-ESX'
5 Création de l'hôte
Voilà, nous arrivons au terme de notre article, nous allons créer notre serveur ESX dans notre supervision. Notre fastidieux travail de préparation des services va être récompensé par la rapidité d'exécution de la création de notre hôte. Se positionner dans le menu Configuration / Hosts. Ajouter un host.
![Stacks Image 4962](files/stacks-image-17b22b7.png)
Création de l'hôte ESX
Insérez le nom de l'ESX, son adresse IP et les deux modèles d'hôte generic-host et OS-VMware-ESX. Sauvegardez et constatez le résultat dans la page des services.
![Stacks Image 4967](files/stacks-image-26e56a7-800x192.png)
Application des services
Centreon-Clapi
On appliquera les templates pour initialiser les services.
./centreon -u admin -p password -o HOST -a add -v "ESX_4.1;serveur ESX;172.16.209.220;generic-host;Central;Linux-Servers"
./centreon -u admin -p password -o HOST -a addtemplate -v "ESX_4.1;OS-VMware_ESX"
On appliquera les templates pour initialiser les services.
./centreon -u admin -p password -o HOST -a applytpl -v "ESX_4.1"
6 Vérification du fonctionnement
Appliquez la configuration et vérifiez le fonctionnement de votre supervision.
![Stacks Image 4974](files/stacks-image-14bbf4b-800x316.png)
Résultat des services
7 Optimisation de la supervision
Plusieurs personnes m'ont fait part de l'augmentation de l'activité du moteur de supervision. Le plugin est assez gourmand en temps d'exécution, il n'est pas rare d'observer un temps supérieur à la seconde. Il est peut-être opportun de mettre en place les connecteurs Perl pour ces commandes. Bien sûr, il vous faudra le moteur de supervision Centreon-Engine et de préférences les dernières versions (1.3.7 pour Centreon-Engine et 2.5.1 pour Centreon).
7.1 Configuration des commandes
Afin d'activer le connecteur Perl pour les commandes respectives check_esx et check_esx_limite, sélectionnez le menu Configuration / Commands / Checks, choisir un des commandes indiquées. Choisissez Perl Connector dans la section Additional Information. Validez pour les deux commandes respectives.
![Stacks Image 22289](files/stacks-image-65d62cf.png)
Configuration des commandes
Vérifiez la configuration de votre connecteur (Menu Configuration / Commands / Connector). Dans le cas présent, il n'y a pas de chemin. Vous devrez vérifiez la cohérence avec la configuration du poller. Pour chaque service, on rajoute le binaire du connecteur avec son chemin absolu comme le montre cet exemple du fichier de configuration connectors.cfg.
define connector{ connector_name Perl Connector connector_line /usr/local/centreon-connector/bin/centreon_connector_perl }
![Stacks Image 22310](files/stacks-image-aaca93f-800x418.png)
Configuration du connecteur Perl
7.2 Configuration du poller
Donc, si nous prenons l'exemple ci-dessous, le chemin doit être /usr/local/centreon-connector/bin/ si vous avez installé votre binaire comme indiqué dans mon article sur l'installation des connecteurs.
![Stacks Image 22347](files/stacks-image-46a533c-800x686.png)
Configuration du Poller
7.3 Vérification de l'optimisation
Appliquez votre configuration. Vérifiez le démarrage du connecteur dans le fichier log de centreon-engine.
[1406094216] connector 'Perl Connector' start
![Stacks Image 22376](files/stacks-image-fa0737e-48x46.png)
Une mauvaise configuration des connecteurs provoque ce type d'erreur.
![erreur_connecteur_perl](files/erreur_connecteur_perl.png)
et les messages suivants dans les logs du moteur de supervision.
[1406180017] warning: connector 'Perl Connector': [/usr/local/src/centreon-engine-1.3.7/src/commands/connector.cc:461(_connector_start)] connector start failed: timeout
[1406180018] SERVICE ALERT: supervision;cpu;UNKNOWN;SOFT;1;(Failed to execute command with connector 'Perl Connector')
Comme vous pouvez le constater, la mise en place du connecteur Perl améliore sensiblement le temps d'exécution des plugins.
![Stacks Image 22276](files/stacks-image-4a125c7.png)
Temps d'exécution des vérifications de services
Il reste encore à configurer les graphiques et de voir la configuration avec Centreon-Clapi. la suite ici