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é. La version actuelle de centreon-vmware est la 3.0. Elle utilise la bibliothèque réseau ZeroMQ version 4. Actuellement, je n'ai pas encore réussi à installer cette bibliothèque sur Debian Stretch. Le tutoriel est réalisé avec une version Debian Jessie ou Stretch. Merci à Yann pour son aide pour l'astuce de compilation pour Stretch. Attention, la version exigée des plugins Centreon est la version 20190221.

1 Installation du connecteur sur un Central Centreon

Nous utiliserons un Central avec Centreon-Engine et Centreon-Broker et une version de Centreon-Web 18.10.3. 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. Le plus simple pour l'installation est d'utiliser le script automatique, vous aurez aussi tous les outils de compilation nécessaire à l'installation du connecteur VMware.
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.7.
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.7.0-8156551.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 755 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") ) {
Vous pouvez aussi modifier le fichier comme ceci :
sed -i -e "s/ubuntu/debian/g" bin/vmware-uninstall-vSphere-CLI.pl

1.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.7.0 build-8156551 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: vSphere CLI requires Perldoc.
Please install perldoc.
 
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 
Do you want to continue? (yes/no) yes
Accepter le téléchargement des librairies Perl.
Please wait while configuring perl modules using CPAN ...
 
CPAN is downloading and installing pre-requisite Perl module "Path::Class" .
 
CPAN is downloading and installing pre-requisite Perl module "Net::INET6Glue" .
 
 
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.7.0 build-8156551 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:
 
Time::Piece 1.31 or newer 
Try::Tiny 0.28 or newer 
UUID 0.27 or newer 
XML::NamespaceSupport 1.12 or newer 
XML::LibXML::Common 2.0129 or newer 
XML::LibXML 2.0129 or newer 
LWP 6.26 or newer 
LWP::Protocol::https 6.07 or newer 
Socket6  0.28 or newer 
Text::Template 1.47 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.
Debian 8
cd /usr/local/src
wget http://search.cpan.org/CPAN/authors/id/M/MO/MOSCONI/ZMQ-LibZMQ4-0.01.tar.gz
tar zxf ZMQ-LibZMQ4-0.01.tar.gz && cd ZMQ-LibZMQ4-0.01
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
Debian 9
cd /usr/local/src
wget http://search.cpan.org/CPAN/authors/id/M/MO/MOSCONI/ZMQ-LibZMQ4-0.01.tar.gz
tar zxf ZMQ-LibZMQ4-0.01.tar.gz && cd ZMQ-LibZMQ4-0.01
sed -i -e "s/tools/.\tools/g" Makefile.PL
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/
cp contrib/config/centreon_vmware-conf.pm /etc/centreon/centreon_vmware.pm
cp contrib/debian/centreon_vmware-systemd /etc/systemd/system/centreon_vmware.service
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/
Activez le démarrage automatique du démon.
systemctl daemon-reload
systemctl enable centreon_vmware

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 ou serveur esxi 6.7 avec le mot de passe root. 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;
Vous pouvez utiliser un esxi comme cet exemple :
%centreon_vmware_config = (
        vsphere_server => {
                        'default' => {'url' => 'https://192.168.0.120/sdk',
                                     'username' => 'root',
                                     '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
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. Vous devez avoir la dernière version des plugins (version 20190221).
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::vmware::connector::plugin --mode=getmap --custommode=connector --connector-hostname='localhost' --connector-port='5700' --container='default'
Un message de ce type va s'afficher sur la première console
2019-03-09 22:00:59 - vpshere 'default' handler asking: {"unknown_connector_status":null,"connector_port":"5700","vsphere_address":null,"filter":null,"timeout":null,"scope_cluster":null,"case_insensitive":null,"sampling_period":null,"vsphere_password":null,"command":"getmap","vsphere_username":null,"scope_datacenter":null,"identity":"client-e09053381f1e4999ba090dee1f37ee2a","connector_hostname":"localhost","esx_hostname":null,"warning_connector_status":null,"vm_no":null,"container":"default","time_shift":0,"critical_connector_status":null}
Et vous devriez avoir ce type de résultat. Si la commande ne retourne aucune valeur c'est que vous n'avez peut-être pas la bonne version du plugin.
List ESX host(s): 
  esx67 [v6.7.0] :
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.7.0-8156551.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 755 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") ) {
Vous pouvez aussi modifier le fichier comme ceci :
sed -i -e "s/ubuntu/debian/g" bin/vmware-uninstall-vSphere-CLI.pl

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.7.0 build-8156551 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: vSphere CLI requires Perldoc.
Please install perldoc.
 
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 
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 "Path::Class" .
 
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.7.0 build-8156551 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:
 
Time::Piece 1.31 or newer 
Try::Tiny 0.28 or newer 
UUID 0.27 or newer 
XML::NamespaceSupport 1.12 or newer 
XML::LibXML::Common 2.0129 or newer 
XML::LibXML 2.0129 or newer 
LWP 6.26 or newer 
LWP::Protocol::https 6.07 or newer 
Socket6  0.28 or newer 
Text::Template 1.47 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.
Debian 8
cd /usr/local/src
wget http://search.cpan.org/CPAN/authors/id/M/MO/MOSCONI/ZMQ-LibZMQ4-0.01.tar.gz
tar zxf ZMQ-LibZMQ4-0.01.tar.gz && cd ZMQ-LibZMQ4-0.01
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
Debian 9
cd /usr/local/src
wget http://search.cpan.org/CPAN/authors/id/M/MO/MOSCONI/ZMQ-LibZMQ4-0.01.tar.gz
tar zxf ZMQ-LibZMQ4-0.01.tar.gz && cd ZMQ-LibZMQ4-0.01
sed -i -e "s/tools/.\tools/g" Makefile.PL
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-systemd /etc/systemd/system/centreon_vmware.service
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/
Activez le démarrage automatique du démon.
systemctl daemon-reload
systemctl enable centreon_vmware
Démarrez le service
systemctl start centreon_vmware

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 --mode=cpu-host --custommode=connector --connector-hostname='172.16.209.60' --connector-port='5700' --container='default'  --esx-hostname='esx67'
Résultat de la commande :
OK: Host 'esx67' : status connected - cpu total average : 4.92 %, 255.00 MHz - All CPUs are ok | 'cpu_total'=4.92%;;;0;100 'cpu_total_MHz'=255.00MHz;;;0;5184 'cpu_0'=5.31%;;;0;100 'cpu_1'=4.52%;;;0;100

Références

comments powered by Disqus
comments powered by Disqus