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.
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.
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 installDebian 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
-
Mise à jour centreon-vmware > 2.4.0
- Après la mise à jour de centreon-vmware, vous aurez certainement ce message au démarrage du démon.
Can't locate ZMQ/LibZMQ4.pm in @INC (you may need to install the ZMQ::LibZMQ4 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/script/centreon_vmware.pm line 26.
BEGIN failed--compilation aborted at /usr/share/perl5/centreon/script/centreon_vmware.pm line 26.
Compilation failed in require at /usr/bin/centreon_vmware.pl line 23.
BEGIN failed--compilation aborted at /usr/bin/centreon_vmware.pl line 23.
Il faudra récupérer la version 4 de la librairie perl de ZéroMQ.
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
-
Cannot bind inc '/tmp/centreon_vmware/routing.ipc': Adresse déjà utilisée
- Le service centreon_vmware utilise le user système centreon. Si vous avez testé le connecteur vmware avec le compte root, le dossier et le fichier centreon_vmware/routing.ipc ne pourront pas être utilisé par le user centreon. Il faut donc supprimer ce fichier temporaire.
rm -rf /tmp/centreon_vmware/
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.
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 installDebian 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 :
Plugin GitHub
/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'Plugin FatPacked
/usr/lib/centreon/plugins/centreon_vmware_connector_client.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
-
Message Can't locate ZMQ/libZMQ4
- Pour chaque poller interrogeant le connecteur vmware à distance, il faudra installer le paquet suivant :
apt-get install libuuid-perl
Puis la librairie Perl ZMQ4 en reprenant la procédure 2.3a.
Références
La documentation officielle Centreon : https://documentation-fr.centreon.com/docs/centreon-vmware/en/latest/index.html