Menu


Stacks Image 75485
Cet article privilégie l'installation du connecteur VMware sous Debian. Pour l'installation sur Centreon (CentOS), lisez la documentation officielle de Centreon. Le premier chapitre décrit l'installation du connecteur dans un Central Centreon. Le deuxième chapitre décrit l'installation du connecteur dans un serveur dédié.

1 Installation du connecteur sur un Central Centreon

Nous utiliserons un Central avec Centreon-Engine et Centreon-Broker et une version de Centreon-Web >= 2.7.x. Vous aurez aussi installé les plugins Centreon comme indiqué dans mes installations Debian. Prévoyez suffisamment de mémoire vive supplémentaire (1 Go RAM) pour votre serveur car le connecteur est assez gourmand en ressource.
Stacks Image 75717
Schéma de la maquette

1.1 Installation du vSphere for Perl de VMware

Vous devez récupérer le binaire vSphere SDK for Perl de VMware pour l'installer sur votre serveur de supervision. Il vous faudra un compte chez VMware. Connectez-vous et recherchez le Perl SDK. Dans notre exemple nous utilisons la version actuelle qui est le SDK 6.5.
Stacks Image 4821
Téléchargement du SDK
Choisissez le binaire adapté à votre supervision, pour ma part je choisis le SDK 64 bits. Télécharger le SDK et copiez-le sur la supervision dans /usr/local/src

1.1a Prérequis Debian

Ajoutez les paquets Debian suivants si ce n'est pas déjà fait pour l'installation du SDK.
apt-get install build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl libsoap-lite-perl libdata-dump-perl libarchive-zip-perl libclass-methodmaker-perl 

1.1b Préparation du SDK

Décompressez le binaire d'installation.
cd /usr/local/src
tar xzf VMware-vSphere-Perl-SDK-6.5.0-4566394.x86_64.tar.gz
cd vmware-vsphere-cli-distrib/

1.1c adaptation pour Debian

Il faut adapter le script d'installation à notre distribution. Rendre modifiable le fichier /usr/local/src/vmware-vsphere-cli-distrib/bin/vmware-uninstall-vSphere-CLI.pl.
chmod 777 /usr/local/src/vmware-vsphere-cli-distrib/bin/vmware-uninstall-vSphere-CLI.pl
Éditez le fichier /usr/local/src/vmware-vsphere-cli-distrib/bin/vmware-uninstall-vSphere-CLI.pl. Remplacez les deux chaines ubuntu par debian. Il y a
# check for e2fsprogs-devel installed
if ( direct_command("cat /etc/*release | grep -i ubuntu") || direct_command("cat /proc/version | grep -i ubuntu") ) {
Il faut
# check for e2fsprogs-devel installed
if ( direct_command("cat /etc/*release | grep -i debian") || direct_command("cat /proc/version | grep -i debian") ) {

1.2 Installation du SDK

Maintenant, nous pouvons lancer l'installation du SDK.
cd /usr/local/src
cd vmware-vsphere-cli-distrib/
./vmware-install.pl

Creating a new vSphere CLI installer database using the tar4 format.

Installing vSphere CLI 6.5.0 build-4566394 for Linux.

You must read and accept the vSphere CLI End User License Agreement to
continue.
Press enter to display it.
Valider par entrée et répondre yes pour valider la licence.
Do you accept? (yes/no) yes

Thank you.

WARNING: The http_proxy environment variable is not set. If your system is
using a proxy for Internet access, you must set the http_proxy environment
variable .

If your system has direct Internet access, you can ignore this warning .

WARNING: The ftp_proxy environment variable is not set.  If your system is
using a proxy for Internet access, you must set the ftp_proxy environment
variable .

If your system has direct Internet access, you can ignore this warning .

Please wait while configuring CPAN ...

Below mentioned modules with their version needed to be installed,
these modules are available in your system but vCLI need specific
version to run properly

Module: ExtUtils::MakeMaker, Version: 6.96
Module: Module::Build, Version: 0.4205
Module: Net::FTP, Version: 2.77
Module: LWP::Protocol::https, Version: 6.04
Do you want to continue? (yes/no)
Accepter le téléchargement des librairies Perl.
Do you want to continue? (yes/no) yes

Please wait while configuring perl modules using CPAN ...

CPAN is downloading and installing pre-requisite Perl module
"Devel::StackTrace" .

CPAN is downloading and installing pre-requisite Perl module
"Class::Data::Inheritable" .

CPAN is downloading and installing pre-requisite Perl module "Convert::ASN1" .

CPAN is downloading and installing pre-requisite Perl module
"Crypt::OpenSSL::RSA" .

CPAN is downloading and installing pre-requisite Perl module "Crypt::X509" .

CPAN is downloading and installing pre-requisite Perl module "Exception::Class"
.

CPAN is downloading and installing pre-requisite Perl module "UUID::Random" .

CPAN is downloading and installing pre-requisite Perl module "Path::Class" .

CPAN is downloading and installing pre-requisite Perl module "Try::Tiny" .

In which directory do you want to install the executable files?
[/usr/bin]
Valider le dossier /usr/bin par défaut.
Please wait while copying vSphere CLI files...

The installation of vSphere CLI 6.5.0 build-4566394 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command:
"/usr/bin/vmware-uninstall-vSphere-CLI.pl".

This installer has successfully installed both vSphere CLI and the vSphere SDK
for Perl.

The following Perl modules were found on the system but may be too old to work
with vSphere CLI:

LWP 6.15 or newer
Socket6  0.23 or newer
Net::HTTP 6.09 or newer

Enjoy,

--the VMware team
L'installation du SDK est terminée. Les messages d’avertissement de modules obsolètes ne sont pas bloquants.

1.3 Installation de Centreon-VMware

1.3a Prérequis Debian

Ajoutez la bibliothèque réseau ZeroMQ.
apt-get install libzmq3-dev -y
Téléchargez et compilez sa librairie Perl pour le fonctionnement de Centreon-VMware.
cd /usr/local/src
wget https://cpan.metacpan.org/authors/id/D/DM/DMAKI/ZMQ-LibZMQ3-1.19.tar.gz
tar zxf ZMQ-LibZMQ3-1.19.tar.gz && cd ZMQ-LibZMQ3-1.19
perl Makefile.PL
make && make install
cd ..
wget https://cpan.metacpan.org/authors/id/D/DM/DMAKI/ZMQ-Constants-1.04.tar.gz
tar zxf ZMQ-Constants-1.04.tar.gz && cd ZMQ-Constants-1.04
perl Makefile.PL
make && make install

1.3b Installation du connecteur

Nous allons récupérer les sources dans le GitHub de Centreon. Le paquet pour git doit être installé.
apt-get install git-core -y
Téléchargeons le connecteur Centreon-VMware.
cd /usr/local/src
git clone https://github.com/centreon/centreon-vmware.git
Installez les binaires et les fichiers de configuration.
cd centreon-vmware
cp centreon_vmware.pl /usr/bin/
mkdir -p /etc/centreon
cp contrib/config/centreon_vmware-conf.pm /etc/centreon/centreon_vmware.pm
cp contrib/debian/centreon_vmware-init /etc/init.d/centreon_vmware
cp contrib/debian/centreon_vmware-default /etc/default/centreon_vmware
chmod 775 /etc/init.d/centreon_vmware /usr/bin/centreon_vmware.pl
mkdir -p /usr/share/perl5/centreon/vmware/ /usr/share/perl5/centreon/script/
cp centreon/vmware/* /usr/share/perl5/centreon/vmware/
cp centreon/script/centreon_vmware.pm /usr/share/perl5/centreon/script/
Modifiez le fichier de configuration par défaut du démon pour avoir les logs dans le dossier /var/log/centreon.
vi /etc/default/centreon_vmware
Modifiez la ligne comme ci-dessous :
OPTIONS="--logfile=/var/log/centreon/centreon_vmware.log --severity=error"
Activez le démarrage automatique du démon.
update-rc.d centreon_vmware defaults
Pour le bon fonctionnement du démon, il faut installer les dépendances du client. Comme nous sommes sur un Central, nous copierons les dossiers nécessaires.
cp -R /usr/lib/centreon/plugins/ /usr/share/perl5/centreon/

1.4 Test du connecteur

Afin de tester notre connecteur, il faudra renseigner le fichier de configuration /etc/centreon/centreon_vmware.pm. Pour mes tests, j'utilise un vCenter 5.5 et le mot de passe administrateur du vCenter. Pour une installation de production, utilisez un compte dédié à la supervision. Voici mon exemple de configuration :
%centreon_vmware_config = (
        vsphere_server => {
                        'default' => {'url' => 'https://192.168.0.120/sdk',
                                     'username' => 'administrator@vsphere.local',
                                     'password' => 'motdepasse'}
                        }
);

1;
Nous pouvons vérifier dès à présent, le fonctionnement du connecteur avec cette commande :
/usr/bin/perl /usr/bin/centreon_vmware.pl --config=/etc/centreon/centreon_vmware.pm
Avec cette méthode, on découvre rapidement un oubli de librairie comme le montre cet exemple :
# /usr/bin/perl /usr/bin/centreon_vmware.pl --config=/etc/centreon/centreon_vmware.pm
Can't locate centreon/plugins/options.pm in @INC (you may need to install the centreon::plugins::options module) (@INC contains: /usr/lib64/perl5/libwww-perl-5.837/lib /usr/lib64/perl5 /usr/bin /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at /usr/share/perl5/centreon/vmware/common.pm line 28.
BEGIN failed--compilation aborted at /usr/share/perl5/centreon/vmware/common.pm line 28.
Compilation failed in require at /usr/share/perl5/centreon/script/centreon_vmware.pm line 33.
BEGIN failed--compilation aborted at /usr/share/perl5/centreon/script/centreon_vmware.pm line 33.
Compilation failed in require at /usr/bin/centreon_vmware.pl line 23.
BEGIN failed--compilation aborted at /usr/bin/centreon_vmware.pl line 23.
Voici le comportement, lors d'un fonctionnement normal. Lors du premier démarrage, il y a la création d'un fichier spécial dans le dossier temporaire. Le connecteur accepte les connexions clients, ensuite il se connecte au vCenter et prépare les compteurs de performances. Après quelques secondes, le connecteur doit indiquer que les compteurs de performances sont prêts.
2017-03-26 19:31:57 - Cannot bind ipc '/tmp/centreon_vmware/routing.ipc': Aucun fichier ou dossier de ce type
2017-03-26 19:31:57 - Maybe dirctory not exist. We try to create it!!!
2017-03-26 19:31:57 - Create vsphere sub-process for 'default'
2017-03-26 19:31:57 - 'default' init begin
2017-03-26 19:31:57 - [Server accepting clients]
2017-03-26 19:31:57 - 'default' init done
2017-03-26 19:31:57 - 'default' Vsphere connection in progress
2017-03-26 19:32:12 - 'default' Vsphere connection ok
2017-03-26 19:32:12 - 'default' Create perf counters cache in progress
2017-03-26 19:32:13 - 'default' Create perf counters cache done
Pour vérifier le bon fonctionnement du connecteur, nous utiliserons la commande suivante avec une autre invite de commande connectée sur le central.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::vmware::connector::plugin  --custommode=connector --connector-hostname=127.0.0.1 --container=default --verbose --mode=health-host --esx-hostname='192.168.0.121' --filter --disconnect-status='ok'
Un message de ce type va s'afficher.
2017-03-26 19:55:07 - vpshere 'default' handler asking: {"scope_cluster":null,"filter":1,"command":"healthhost","vsphere_address":null,"identity":"client-37128eabc45d42469421c6ff3d478a69","time_shift":0,"sampling_period":null,"container":"default","vsphere_password":null,"storage_status":null,"connector_hostname":"127.0.0.1","disconnect_status":"ok","connector_port":"5700","esx_hostname":"192.168.0.121","scope_datacenter":null,"vsphere_username":null,"timeout":null}
Et vous devriez avoir ce type de résultat.
OK: '192.168.0.121' 84 health checks are green | 'problems'=0;;;0;84
Checking 192.168.0.121
84 health checks are green
Maintenant que vous êtes sûr du bon fonctionnement du connecteur, lancez-le en tant que démon.
service centreon_vmware start
Vérifiez que votre connecteur écoute sur le port 5700 (port par défaut).
# netstat -an | grep 5700
tcp        0      0 0.0.0.0:5700            0.0.0.0:*               LISTEN

2 Installation du connecteur sur serveur dédié

Pour alléger la charge des serveurs de supervision (Central et poller), on pourra dédier un serveur pour assurer la connexion entre la supervision et l'infrastructure VMware. Nous allons donc utiliser une distribution Debian 8 pour en faire un serveur Centreon-ESXD.
Stacks Image 75720
Schéma de la maquette

2.1a Prérequis Debian

Ajoutez les paquets Debian pour l'installation du SDK.
apt-get install build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl libsoap-lite-perl libdata-dump-perl libarchive-zip-perl libclass-methodmaker-perl libdbi-perl libjson-perl

2.1b Préparation du SDK

Décompressez le binaire d'installation.
cd /usr/local/src
tar xzf VMware-vSphere-Perl-SDK-6.5.0-4566394.x86_64.tar.gz
cd vmware-vsphere-cli-distrib/

2.1c adaptation pour Debian

Il faut adapter le script d'installation à notre distribution. Rendre modifiable le fichier /usr/local/src/vmware-vsphere-cli-distrib/bin/vmware-uninstall-vSphere-CLI.pl.
chmod 777 /usr/local/src/vmware-vsphere-cli-distrib/bin/vmware-uninstall-vSphere-CLI.pl
Éditez le fichier /usr/local/src/vmware-vsphere-cli-distrib/bin/vmware-uninstall-vSphere-CLI.pl. Remplacez les deux chaines ubuntu par debian. Il y a
# check for e2fsprogs-devel installed
if ( direct_command("cat /etc/*release | grep -i ubuntu") || direct_command("cat /proc/version | grep -i ubuntu") ) {
Il faut
# check for e2fsprogs-devel installed
if ( direct_command("cat /etc/*release | grep -i debian") || direct_command("cat /proc/version | grep -i debian") ) {

2.2 Installation du SDK

Maintenant, nous pouvons lancer l'installation du SDK.
./vmware-install.pl

Creating a new vSphere CLI installer database using the tar4 format.

Installing vSphere CLI 6.5.0 build-4566394 for Linux.

You must read and accept the vSphere CLI End User License Agreement to
continue.
Press enter to display it.
Valider par entrée et répondre yes pour valider la licence.
Do you accept? (yes/no) yes

Thank you.

WARNING: The http_proxy environment variable is not set. If your system is
using a proxy for Internet access, you must set the http_proxy environment
variable .

If your system has direct Internet access, you can ignore this warning .

WARNING: The ftp_proxy environment variable is not set.  If your system is
using a proxy for Internet access, you must set the ftp_proxy environment
variable .

If your system has direct Internet access, you can ignore this warning .

Please wait while configuring CPAN ...

Below mentioned modules with their version needed to be installed,
these modules are available in your system but vCLI need specific
version to run properly

Module: ExtUtils::MakeMaker, Version: 6.96
Module: Module::Build, Version: 0.4205
Module: Net::FTP, Version: 2.77
Module: LWP::Protocol::https, Version: 6.04
Do you want to continue? (yes/no) yes

Please wait while configuring perl modules using CPAN ...

CPAN is downloading and installing pre-requisite Perl module
"Devel::StackTrace" .

CPAN is downloading and installing pre-requisite Perl module
"Class::Data::Inheritable" .

CPAN is downloading and installing pre-requisite Perl module "Convert::ASN1" .

CPAN is downloading and installing pre-requisite Perl module
"Crypt::OpenSSL::RSA" .

CPAN is downloading and installing pre-requisite Perl module "Crypt::X509" .

CPAN is downloading and installing pre-requisite Perl module "Exception::Class"
.

CPAN is downloading and installing pre-requisite Perl module "UUID::Random" .

CPAN is downloading and installing pre-requisite Perl module "Path::Class" .

CPAN is downloading and installing pre-requisite Perl module "Try::Tiny" .

CPAN is downloading and installing pre-requisite Perl module "Socket6 " .

CPAN is downloading and installing pre-requisite Perl module
"IO::Socket::INET6" .

CPAN is downloading and installing pre-requisite Perl module "Net::INET6Glue" .


In which directory do you want to install the executable files?
[/usr/bin]

Please wait while copying vSphere CLI files...

The installation of vSphere CLI 6.5.0 build-4566394 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command:
"/usr/bin/vmware-uninstall-vSphere-CLI.pl".

This installer has successfully installed both vSphere CLI and the vSphere SDK
for Perl.

The following Perl modules were found on the system but may be too old to work
with vSphere CLI:

LWP 6.15 or newer
Net::HTTP 6.09 or newer

Enjoy,

--the VMware team
L'installation du SDK est terminée. Les messages d’avertissement de modules obsolètes ne sont pas bloquants.

2.3 Installation de Centreon-VMware

2.3a Prérequis Debian

Ajoutez la bibliothèque réseau ZeroMQ.
apt-get install libzmq3-dev -y
Téléchargez et compilez sa librairie Perl pour le fonctionnement de Centreon-VMware.
cd /usr/local/src
wget https://cpan.metacpan.org/authors/id/D/DM/DMAKI/ZMQ-LibZMQ3-1.19.tar.gz
tar zxf ZMQ-LibZMQ3-1.19.tar.gz && cd ZMQ-LibZMQ3-1.19
perl Makefile.PL
make && make install
cd ..
wget https://cpan.metacpan.org/authors/id/D/DM/DMAKI/ZMQ-Constants-1.04.tar.gz
tar zxf ZMQ-Constants-1.04.tar.gz && cd ZMQ-Constants-1.04
perl Makefile.PL
make && make install

2.3b Installation du connecteur

Nous allons récupérer les sources dans le GitHub de Centreon. Le paquet pour git doit être installé.
apt-get install git-core -y
Téléchargeons le connecteur Centreon-VMware.
cd /usr/local/src
git clone https://github.com/centreon/centreon-vmware.git
Installez les binaires et les fichiers de configuration.
cd centreon-vmware
cp centreon_vmware.pl /usr/bin/
mkdir -p /etc/centreon
cp contrib/config/centreon_vmware-conf.pm /etc/centreon/centreon_vmware.pm
cp contrib/debian/centreon_vmware-init /etc/init.d/centreon_vmware
cp contrib/debian/centreon_vmware-default /etc/default/centreon_vmware
chmod 775 /etc/init.d/centreon_vmware /usr/bin/centreon_vmware.pl
mkdir -p /usr/share/perl5/centreon/vmware/ /usr/share/perl5/centreon/script/
cp centreon/vmware/* /usr/share/perl5/centreon/vmware/
cp centreon/script/centreon_vmware.pm /usr/share/perl5/centreon/script/
Modifiez le fichier de configuration par défaut du démon pour avoir les logs dans le dossier /var/log/centreon.
vi /etc/default/centreon_vmware
Modifiez la ligne comme ci-dessous :
OPTIONS="--logfile=/var/log/centreon/centreon_vmware.log --severity=error"
Activez le démarrage automatique du démon.
update-rc.d centreon_vmware defaults
Pour le bon fonctionnement du démon, il faut installer la perl-centreon-base se trouvant dans Centreon-Web. Utilisons la branche la plus récente du GitHub.
cd /usr/local/src
git clone -b 2.8.4 --single-branch https://github.com/centreon/centreon.git centreon
Copier les librairies dans le bon dossier
cd centreon
cp lib/perl/centreon/script.pm /usr/share/perl5/centreon/
cp -R lib/perl/centreon/common /usr/share/perl5/centreon/
Il faut récupérer les dépendances des plugins Centreon.
cd /usr/local/src
git clone https://github.com/centreon/centreon-plugins.git
Copier les librairies dans le bon dossier
cd centreon-plugins
cp -R centreon/plugins /usr/share/perl5/centreon/

2.4 Test du connecteur

utilisez la procédure du paragraphe 1.4 pour effectuer les tests de fonctionnement à l'exception de la commande de plugin. Nous utiliserons un poller en état de fonctionnement. La différence se situe dans l'appel du connecteur. Nous remplacerons l'adresse de la boucle locale 127.0.0.1 par l'adresse IP de notre serveur Centreon-ESXD pour le paramètre connector-hostname. Voici un exemple :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::vmware::connector::plugin  --custommode=connector --connector-hostname=172.16.209.60 --container=default --verbose --mode=health-host --esx-hostname='192.168.0.121' --filter --disconnect-status='ok'

Références

comments powered by Disqus