Menu


Stacks Image 75614
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
Remarques
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

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
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
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
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.
Stacks Image 4913
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
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
Remarques
Pour un serveur ESXi 5.x, appliquez ce mot de passe : Esx2013#

Voila_Capture2794
Ensuite, nous passons aux modèles de service qui seront associés au modèle d'hôte ESX.
Stacks Image 4945
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
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
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
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
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
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
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
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
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
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
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
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
Application des services
Centreon-Clapi
./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
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
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
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
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
Remarques
Une mauvaise configuration des connecteurs provoque ce type d'erreur.

erreur_connecteur_perl

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
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
comments powered by Disqus