Supervision VMware ESXi-6.7 avec Centreon

Nous allons voir dans cet article comment mettre en plas la supervision VMware ESXi afin d’assurer le bon fonctionnement des machines virtuelles et éviter les pannes. Comme d’habitude, nous allons utiliser Centreon et Centreon Plugins Packs pour la supervision ainsi que le module Centreon-vmware.

Ce qu’il vous faut :

Infrastructure requise :

Documentation Centreon : 


UPDATE #1 : SUPERVISION VIA CENTREON WEB

UPDATE #2 : CENTREON 19.04.3  |  VMWARE PERL SDK 6.7   |  CENTREON_VMWARE 3.0.0

UPDATE #3 : CENTREON 19.10.4  |  VMWARE PERL SDK 6.7   |  CENTREON_VMWARE 3.1.0 |  VSAN SDK PERL 6.7


Install VMware Perl SDK

Pour fonctionner correctement, le connecteur Centreon-VMware utilise VMware vSphere Perl SDK. Téléchargez la bonne version (64bits) selon vos serveurs ESXi sur le site VMware et transférez le fichier sur votre serveur Centreon.

Remarque : je n’ai rien installé sur le serveur Centreon. Lors de l’installation du connecteur VMware et SDK Perl, nous allons surement rencontrer des erreurs de dépendances et nous verrons comment les résoudre.

J’ai transféré le fichier dans le répertoire /tmp :

[root@centreon ~]# cd /tmp/
[root@centreon tmp]# chmod 775 VMware-vSphere-Perl-SDK-6.7.0-8156551.x86_64.tar.gz
[root@centreon tmp]# tar xvf VMware-vSphere-Perl-SDK-6.7.0-8156551.x86_64.tar.gz
[root@centreon tmp]#
[root@centreon tmp]# cd vmware-vsphere-cli-distrib/
[root@centreon vmware-vsphere-cli-distrib]# ll
total 100
drwxr-xr-x 10 root root   124  2 avril 11:09 apps
drwxr-xr-x  2 root root  4096  2 avril 11:09 bin
drwxr-xr-x  3 root root    89  2 avril 11:09 doc
drwxr-xr-x  2 root root    26  2 avril 11:09 etc
-r--r--r--  1 root root 93828  2 avril 11:09 FILES
drwxr-xr-x  9 root root    94  2 avril 11:09 lib
-r--r--r--  1 root root  3340  2 avril 11:09 Makefile.PL
drwxr-xr-x  2 root root    23  2 avril 11:09 man
drwxr-xr-x  2 root root    87  2 avril 11:09 resources
lrwxrwxrwx  1 root root    35  2 avril 11:09 vmware-install.pl -> bin/vmware-uninstall-vSphere-CLI.pl

Lancez l’installation :

[root@centreon vmware-vsphere-cli-distrib]# ./vmware-install.pl
  • Appuyez sur Entrée 2x
  • Défiler la licence avec la barre Espace
  • Acceptez la licence : yes

Ne pas tenir compte des erreurs WARNING

Erreur 1 : 

  • Can’t locate Module/Build.pm
  • Module : ExtUtils::MakeMaker, Version: 6.96
  • Module : Module::Build, Version: 0.4205
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 ...

# Can't locate Module/Build.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).
BEGIN failed--compilation aborted.
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
# Do you want to continue? (yes/no) no

Il faut annuler l’installation et résoudre ce problème.

Installez les packages suivants :

[root@centreon ~]# yum install perl-libwww-per perl-XML-LibXML perl-Class-MethodMaker perl-Crypt-SSLeay perl-SOAP-Lite perl-UUID perl-ZMQ-LibZMQ3
[root@centreon ~]# yum install gcc gcc-c++

Installez ensuite ce module Perl

[root@centreon ~]# yum install perl-Module-Build.noarch
Installation :
 perl-Module-Build                          noarch               2:0.40.05-2.el7                    base         281 k
Installation pour dépendances :
 perl-CPAN-Meta                             noarch               2.120921-5.el7                     base         113 k
 perl-CPAN-Meta-Requirements                noarch               2.122-7.el7                        base         24 k
 perl-CPAN-Meta-YAML                        noarch               0.008-14.el7                       base         24 k
 perl-ExtUtils-CBuilder                     noarch               1:0.28.2.6-292.el7                 base         67 k
 perl-IPC-Cmd                               noarch               1:0.80-4.el7                       base         34 k
 perl-JSON-PP                               noarch               2.27202-2.el7                      base         55 k
 perl-Locale-Maketext-Simple                noarch               1:0.21-292.el7                     base         50 k
 perl-Module-CoreList                       noarch               1:2.76.02-292.el7                  base         85 k
 perl-Module-Load                           noarch               1:0.24-3.el7                       base         11 k
 perl-Module-Load-Conditional               noarch               0.54-3.el7                         base         18 k
 perl-Module-Metadata                       noarch               1.000018-2.el7                     base         26 k
 perl-Params-Check                          noarch               1:0.38-2.el7                       base         18 k
 perl-Parse-CPAN-Meta                       noarch               1:1.4404-5.el7                     base         14 k
 perl-Perl-OSType                           noarch               1.003-3.el7                        base         20 k
 perl-version                               x86_64               3:0.99.07-3.el7                    base         84 k

Résumé de la transaction
=============================================================================================================================
Installation   1 Paquet (+15 Paquets en dépendance)

Taille totale des téléchargements : 926 k
Taille d'installation : 2.1 M
# Is this ok [y/d/N]: y

Si vous relancez l’installation, il n’y a plus d’erreur. Cependant, nous avons toujours un problème de version avec certains module Perl.

  • Module : ExtUtils::MakeMaker, Version: 6.96
  • Module : Module::Build, Version: 0.4205

On peut vérifier les versions déjà installé par défaut. Ouvrir le Shell CPAN

[root@centreon vmware-vsphere-cli-distrib]# cpan
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.9800)
Enter 'h' for help.
cpan[1]#>

Vérifiez la version des deux modules :

cpan[1]#> i ExtUtils::MakeMaker
Reading '/root/.cpan/Metadata'
  Database was generated on Sun, 22 Jul 2018 00:17:02 GMT
Module id = ExtUtils::MakeMaker
    CPAN_USERID  BINGOS (Chris Williams <chris@bingosnet.co.uk>)
    CPAN_VERSION 7.34
    CPAN_FILE    B/BI/BINGOS/ExtUtils-MakeMaker-7.34.tar.gz
    UPLOAD_DATE  2018-03-19
    MANPAGE      ExtUtils::MakeMaker - Create a module Makefile
    INST_FILE    /usr/share/perl5/vendor_perl/ExtUtils/MakeMaker.pm
#   INST_VERSION 6.68


cpan[2]#> i Module::Build
Module id = Module::Build
    CPAN_USERID  LEONT (Leon Timmermans <fawaka@gmail.com>)
    CPAN_VERSION 0.4224
    CPAN_FILE    L/LE/LEONT/Module-Build-0.4224.tar.gz
    MANPAGE      Module::Build - Build and install Perl modules
    INST_FILE    /usr/share/perl5/vendor_perl/Module/Build.pm
#   INST_VERSION 0.4005


cpan[3]>

Mettez à jour les deux modules via CPAN Shell pour avoir la dernière version.

cpan[3]#> upgrade ExtUtils::MakeMaker
cpan[4]#> upgrade Module::Build

Installez également ces deux modules :

cpan[5]#> install YAML
cpan[6]#> install Time::Piece

Quittez le CPAN : exit

Relancez l’installation :

[root@centreon vmware-vsphere-cli-distrib]# ./vmware-install.pl

Setup Perl CPAN Perl SDK VMware

Patientez …

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

Laissez le répertoire par défaut et Entrée.

Install SDK Perl VMware For Centreon

N’hésitez pas à mettre à jour les modules Perl sur l’image ci-dessus. Exemple pour mettre à jour le module Try::Tiny v 0.28 

[root@centreon tmp]# cpan
...
cpan[1]#> upgrade Try::Tiny
Reading '/root/.cpan/Metadata'
...
Package namespace         installed    latest  in CPAN file
Try::Tiny                      0.12      0.30  ETHER/Try-Tiny-0.30.tar.gz
Running install for module 'Try::Tiny'
Running make for E/ET/ETHER/Try-Tiny-0.30.tar.gz
...
...

Installation Centreon-VMware

Passons maintenant à l’installation du connecteur Centreon-vmware sous le serveur Centreon.

Installer le connecteur VMWare :

[root@hd-centreon plugins]# yum install centreon-plugin-Virtualization-VMWare-daemon.noarch

Installer le client :

[root@centreon plugins]# yum install centreon-plugin-Virtualization-Vmware2-Connector-Plugin.noarch

Téléchargez le package depuis Github :

[root@centreon ~]# cd /tmp
[root@centreon tmp]# git clone https://github.com/centreon/centreon-vmware.git
Cloning into 'centreon-vmware'...
remote: Counting objects: 1469, done.
remote: Total 1469 (delta 0), reused 0 (delta 0), pack-reused 1469
Receiving objects: 100% (1469/1469), 801.22 KiB | 565.00 KiB/s, done.
Resolving deltas: 100% (922/922), done.
[root@centreon tmp]#
[root@centreon tmp]# cd centreon-vmware/
[root@centreon centreon-vmware]#
[root@centreon centreon-vmware]# ll
total 36
drwxr-xr-x 4 root root    34 22 juil. 17:26 centreon
-rw-r--r-- 1 root root  1451 22 juil. 17:26 centreon_vmware.pl
-rw-r--r-- 1 root root  1562 22 juil. 17:26 changelog
drwxr-xr-x 5 root root    48 22 juil. 17:26 contrib
drwxr-xr-x 4 root root    26 22 juil. 17:26 doc
-rw-r--r-- 1 root root 11358 22 juil. 17:26 LICENSE
-rw-r--r-- 1 root root 11357 22 juil. 17:26 LICENSE.txt
-rw-r--r-- 1 root root  3462 22 juil. 17:26 README.md
[root@centreon centreon-vmware]#

Exécutez ces commandes l’une après l’autre :

[root@centreon centreon-vmware]# cp centreon_vmware.pl /usr/bin/
[root@centreon centreon-vmware]# cp contrib/config/centreon_vmware-conf.pm /etc/centreon/centreon_vmware.pm
[root@centreon centreon-vmware]# cp contrib/redhat/centreon_vmware-init /etc/init.d/centreon_vmware
[root@centreon centreon-vmware]# cp contrib/redhat/centreon_vmware-sysconfig /etc/sysconfig/centreon_vmware
[root@centreon centreon-vmware]# chmod 775 /etc/init.d/centreon_vmware /usr/bin/centreon_vmware.pl
[root@centreon centreon-vmware]#
[root@centreon centreon-vmware]# mkdir -p /usr/lib/perl5/vendor_perl/centreon/vmware/ /usr/lib/perl5/vendor_perl/centreon/script/
[root@centreon centreon-vmware]# cp centreon/vmware/* /usr/share/perl5/vendor_perl/centreon/vmware/
[root@centreon centreon-vmware]# cp centreon/script/centreon_vmware.pm /usr/share/perl5/vendor_perl/centreon/script/
[root@centreon centreon-vmware]#
[root@centreon centreon-vmware]# chkconfig --level 2345 centreon_vmware on
[root@centreon centreon-vmware]# 
[root@centreon centreon-vmware]# cp -R /usr/lib/centreon/plugins /usr/share/perl5/vendor_perl/centreon/

Activer le démarrage automatique :

[root@centreon centreon-vmware]# systemctl daemon-reload
[root@centreon centreon-vmware]# systemctl enable centreon_vmware

Ajoutez les droits Centreon à ces deux fichiers :

[root@centreon plugins]# chmod 775 /var/log/centreon/centreon_vmware.log
[root@centreon plugins]# chmod 775 /tmp/centreon_vmware/
[root@centreon plugins]# chown centreon: /var/log/centreon/centreon_vmware.log
[root@centreon plugins]# chown centreon: /tmp/centreon_vmware/

Configuration de Centreon-VMware afin que l’on puisse se connecter sur le vCenter Server (vSphere Web Client) automatiquement.

Ouvrir le fichier de configuration et ajoutez-y les informations de votre vCenter Server.

[root@centreon centreon-vmware]# cd /etc/centreon

Éditez le fichier :

[root@centreon centreon]# nano centreon_vmware.pm
%centreon_vmware_config = (
        vsphere_server => {
                        'default' => {'url' => 'https://172.16.1.7/sdk',
                                     'username' => 'administrator@vpshere.local',
                                     'password' => 'Pa$$w@rd'}
                        }
);

1;

‘default’ = c’est le nom du container. Il est possible de le modifier et d’en rajouter d’autres vCenter à superviser dans ce fichier même.

Démarrer le service :

[root@centreon centreon]# systemctl start centreon_vmware
[root@hd-centreon plugins]# systemctl status centreon_vmware
● centreon_vmware.service - Centreon VMWare
   Loaded: loaded (/etc/systemd/system/centreon_vmware.service; enabled; vendor preset: disabled)
   Active: active (running) since sam. 2020-07-11 16:19:01 CEST; 2s ago
 Main PID: 22406 (perl)
   CGroup: /system.slice/centreon_vmware.service
           ├─22406 /usr/bin/perl /usr/bin/centreon_vmware.pl --logfile=/var/log/centreon/centreon_vmware.log --severity=error
           └─22413 /usr/bin/perl /usr/bin/centreon_vmware.pl --logfile=/var/log/centreon/centreon_vmware.log --severity=error

juil. 11 16:19:01 hd-centreon.cg31.priv systemd[1]: Started Centreon VMWare.
juil. 11 16:19:02 hd-centreon.cg31.priv perl[22406]: Cannot open file /var/log/centreon/centreon_vmware.log: est un dossier
[root@hd-centreon plugins]#

Testez à l’aide de la commande suivante :

[root@centreon centreon]# /usr/bin/perl /usr/bin/centreon_vmware.pl --config=/etc/centreon/centreon_vmware.pm

Vous devez avoir quelque chose dans ce genre :

"my" variable $be masks earlier declaration in same statement at /usr/share/perl5/vendor_perl/centreon/vmware/cmdnethost.pm line 209.
"my" variable $exit masks earlier declaration in same scope at /usr/share/perl5/vendor_perl/centreon/vmware/cmdnethost.pm line 271.
2018-07-22 19:31:04 - Create vsphere sub-process for 'default'
2018-07-22 19:31:04 - [Server accepting clients]
2018-07-22 19:31:04 - 'default' init begin
2018-07-22 19:31:04 - 'default' init done
2018-07-22 19:31:04 - 'default' Vsphere connection in progress
2018-07-22 19:31:05 - 'default' Vsphere connection ok
2018-07-22 19:31:05 - 'default' Create perf counters cache in progress
2018-07-22 19:31:05 - 'default' Create perf counters cache done

Ctrl + C pour arrêter.

Mise à jour Centreon-VMWare

Avec la dernière version des plugins packs centreon, vous allez avoir droit à l’erreur suivante :

UNKNOWN: response format incorrect - need connector vmware version >= 3.x.x

Il suffit de recommencer l’opération avec la dernière version du module Centreon-vmware en écrasant les anciennes fichiers. (Il faut donc re-télécharger le module centreon-vmware)

Remarque : pour écraser les fichiers d’un seul coup, utiliser la commande CP de cette manière : /bin/cp …

Redémarrer ensuite le service centreon_vmware :

[root@hd-centreon ]# systemctl start centreon_vmware
[root@hd-centreon ]# systemctl status centreon_vmware
● centreon_vmware.service - Centreon VMWare
   Loaded: loaded (/etc/systemd/system/centreon_vmware.service; enabled; vendor preset: disabled)
   Active: active (running) since dim. 2020-07-12 10:15:33 CEST; 4s ago
 Main PID: 455 (perl)
   CGroup: /system.slice/centreon_vmware.service
           ├─455 /usr/bin/perl /usr/bin/centreon_vmware.pl --logfile=/var/log/centreon/centreon_vmware.log --severity=error
           └─462 /usr/bin/perl /usr/bin/centreon_vmware.pl --logfile=/var/log/centreon/centreon_vmware.log --severity=error

juil. 12 10:15:33 hd-centreon.cg31.priv systemd[1]: Started Centreon VMWare.
[root@hd-centreon ]#

Si vous avez l’erreur :

Cannot bind ipc '/tmp/centreon_vmware/routing.ipc': Adresse déjà utilisée

Ajoutez les droits Centreon à ces deux fichiers :

[root@centreon plugins]# chmod 775 /var/log/centreon/centreon_vmware.log
[root@centreon plugins]# chmod 775 /tmp/centreon_vmware/
[root@centreon plugins]# chown centreon: /var/log/centreon/centreon_vmware.log
[root@centreon plugins]# chown centreon: /tmp/centreon_vmware/

Passons maintenant à la supervision des serveurs ESXi.

Supervision VMware ESXi (CLI)

Getmap List ESXi

Avant de commencer, faisons un test pour vérifier le bon fonctionnement de notre installation. Nous allons lister les hôtes ESX et les machines virtuelles :

Depuis votre serveur Centreon :

[root@centreon ~]# cd /usr/lib/centreon/plugins

Lancez la commande suivante :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=getmap

J’ai bien la liste :

List ESX host(s):
  vm-esxi.pixelabs.local [v6.7.0] :
      vcenter [poweredOff]
[root@centreon plugins]#

Et c’est bien le cas :

Getmap VMware vCenter Server ESXi Centreon

A vous de jouer maintenant. Voici les modes disponibles :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --list-mode

Plugin Description:
    Check VMWare with centreon-vmware connector.

Global Options:
    --mode  Choose a mode.

    --dyn-mode
            Specify a mode with the path (separated by '::').

    --list-mode
            List available modes.

    --mode-version
            Check minimal version of mode. If not, unknown error.

    --version
            Display plugin version.

    --custommode
            Choose a custom mode.

    --list-custommode
            List available custom modes.

    --multiple
            Multiple custom mode objects (some mode needs it).

Modes Available:
   alarm-datacenter
   alarm-host
   countvm-host
   cpu-host
   cpu-vm
   datastore-countvm
   datastore-host
   datastore-io
   datastore-iops
   datastore-snapshot
   datastore-usage
   datastore-vm
   device-vm
   discovery
 # getmap
   health-host
   limit-vm
   list-clusters
   list-datacenters
   list-datastores
   list-nichost
   maintenance-host
   memory-host
   memory-vm
   net-host
   service-host
   snapshot-vm
   stat-connectors
   status-host
   status-vm
   swap-host
   swap-vm
   thinprovisioning-vm
   time-host
   tools-vm
   uptime-host
   vmoperation-cluster 
[root@centreon plugins]#

Check-health-ESXi

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=health-host --esx-hostname='vm-esxi.pixelabs.local'
...
OK: 'vm-esxi.pixelabs.local' 0 health checks are green | 'problems'=0;;;0;0
[root@centreon plugins]#

Check-status-ESXi

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=status-host --esx-hostname='vm-esxi.pixelabs.local'
...
OK: 'vm-esxi.pixelabs.local' is OK |
[root@centreon plugins]#

Check-datastore-usage

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=datastore-usage --datastore-name=datastore1 --warning-usage=80 --critical-usage=90
...
OK: Datastore 'datastore1' Total: 56.50 GB Used: 31.41 GB (55.59%) Free: 25.09 GB (44.41%) Provisioned: 34.58 GB (61.21%) | 'used'=33722204160B;0:48533130444;0:54599771750;0;60666413056 'provisioned'=37134115263B;;;0;60666413056
[root@centreon plugins]#

Check-memory-ESXi

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=memory-host --esx-hostname='vm-esxi.pixelabs.local' --warning-consumed-memory=80 --critical-consumed-memory=90 --sampling-period=20
...
OK: 'vm-esxi.pixelabs.local' Memory Total: 8.00 GB Used: 1.11 GB (13.86%) Free: 6.89 GB (86.14%), Memory state : high | 'used'=1190117376B;0:6871515136;0:7730454528;0;8589393920 'overhead'=0B;;;0; 'state'=0;;;0;3
[root@centreon plugins]#

Afficher de l’aide pour voir les options de seuil : ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --mode=memory-host --help

–sampling-period : Choose the sampling period (can change the default sampling for counters). Should be not different than 300 or 20.

Supervision VMware ESXi vCenter Server

Check-status-vm

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=status-vm --vm-hostname=vcenter                          
...
OK: 'vcenter' is OK |
[root@centreon plugins]#

Check-CPU-ESXi

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=cpu-host --esx-hostname='vm-esxi.pixelabs.local'
...
OK: 'vm-esxi.pixelabs.local' Total Average CPU usage '9.98%' on last 5 min | 'cpu_total'=9.98%;;;0;100 'cpu_total_MHz'=676.00MHz;;;0;6784 'cpu0'=8.57%;;;0;100 'cpu1'=11.38%;;;0;100
[root@centreon plugins]#

Check-net-host (traffic)

Check-traffic ESXi

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=net-host --esx-hostname='vm-esxi.pixelabs.local' --sampling-period=20
...
OK: 'vm-esxi.pixelabs.local' Interface 'vmnic0' Traffic In : 8.19Kb/s (0.00 %), Out : 0.00b/s (0.00 %), Packets In Dropped : 0.00 % (0/208 packets), Packets Out Dropped : 0.00 % (0/24 packets) | 'traffic_in'=8192.00b/s;;;0;1048576000 'traffic_out'=0.00b/s;;;0;1048576000 'packets_dropped_in'=0.00%;;;0;100 'packets_dropped_out'=0.00%;;;0;100
[root@centreon plugins]#

Check-VSAN-Cluster-Usage

Ce nouveau mode nécessite la mise à jour de Centreon_vmware vers la dernière version (3.1.0 à ce jour) et l’installation du package VSAN Perl SDK 6.7+. Sinon, vous allez vous retrouver avec l’erreur suivante :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=vsan-cluster-usage
UNKNOWN: Vsan is not enabled in vmware connector |
[root@hd-centreon plugins]#

Il faut donc télécharger et installer (de la même manière ci-dessus) la dernière version de Centreon_vmware ainsi que le package VSAN Perl SDK 6.7.0 (voir le lien au début de l’article). J’ai pris la même version que VMWare Perl SDK (6.7).

Uploader l’archive VSAN Perl SDK sur votre serveur Centreon dans le dossier /tmp et dézipper l’archive :

[root@centreon plugins]# unzip vsan-sdk-perl.zip

Copier les deux fichiers qui se trouvent dans le répertoire “bindings” à l’emplacement suivant :

[root@centreon plugins]# cp /tmp/vsan-sdk-perl/bindings/* /root/perl5/lib/perl5/VMware/
[root@centreon plugins]# cp /tmp/vsan-sdk-perl/bindings/* /usr/lib/vmware-vcli/VMware/share/VMware/
[root@centreon plugins]# cp /tmp/vsan-sdk-perl/bindings/* /usr/local/share/perl5/VMware/
[root@centreon plugins]# cp /tmp/vsan-sdk-perl/bindings/* /usr/share/perl5/VMware/
[root@centreon plugins]# cp /tmp/vsan-sdk-perl/bindings/* /usr/share/perl5/perl5/

Relancer le connecteur vmware :

[root@centreon ~]# systemctl restart centreon_vmware
[root@centreon ~]#
[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=127.0.0.1 --container=default --mode=vsan-cluster-usage --cluster-name=DMZ
OK:  |
[root@centreon plugins]#

Remarque : si vous n’avez pas les mêmes variables d’environnement que moi. Les deux fichiers en question doivent se trouver dans les même répertoires que le fichier suivant :  VIM25Runtime.pm

Pour cela, vous devez effectuer une recherche pour voir ou se trouve ce fichier. Pour effectuer facilement une recherche, installer le package MLOCATE

Lancer la recherche :

[root@centreon ~]# updatedb
[root@centreon ~]#
[root@centreon ~]# locate VIM25Runtime.pm
/root/perl5/lib/perl5/VMware/VIM25Runtime.pm
/usr/lib/vmware-vcli/VMware/share/VMware/VIM25Runtime.pm
/usr/local/share/perl5/VMware/VIM25Runtime.pm
/usr/share/perl5/VMware/VIM25Runtime.pm
/usr/share/perl5/perl5/VMware/VIM25Runtime.pm
[root@centreon ~]#

Nous avons donc 5 emplacements. Il faut donc copier les deux fichiers VIM25VsanmgmtRuntime.pm et VIM25VsanmgmtStub.pm dans ces emplacements.

UPDATE #1 : SUPERVISION VIA CENTREON WEB

Supervision VMware ESXi (Centreon Web)

Connectez-vous à l’interface web de Centreon. Nous allons commencer par créer des macros, les commandes, l”hôte ESXi et les services.

  • Allez dans : Configuration > Collecteurs > Ressources 
  • Ajoutez les macros ci-dessous :
    • $_SERVICECONNECTOR$
    • $_SERVICECONTAINER$
    • $_SERVICEMODE$
    • $_SERVICEESXNAME$
    • $_SERVICEOPTION$
    • $_SERVICEWARNING$
    • $_SERVICECRITICAL$

Création de macros Centreon

Commande-Check-Health-ESXi

Nous allons maintenant créer les commandes. Je vous montres quelques exemples et à vous de faire le reste. En cas de besoin, n’hésitez surtout pas à me demander en commentaire.

  • Allez dans Configuration > Commandes > Ajouter
  • Nom de commande : Check-Health-ESXi
  • Ligne de commande : copier/coller
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --custommode=connector --connector-hostname=$_SERVICECONNECTOR$ --container=$_SERVICECONTAINER$ --mode=$_SERVICEMODE$ --esx-hostname=$_SERVICEESXNAME$ $_SERVICEOPTION$

Rappel : $USER2$ chemin des plugins Centreon.

Check health ESXi Centreon

  • Décrire les macros
  • Sauvegarder

Commande-Check-Memory-ESXi

  • Allez dans Configuration > Commandes > Ajouter
  • Nom de commande : Check-Memory-ESXi
  • Ligne de commande : copier/coller
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --custommode=connector --connector-hostname=$_SERVICECONNECTOR$ --container=$_SERVICECONTAINER$ --mode=$_SERVICEMODE$ --esx-hostname=$_SERVICEESXNAME$ --warning-consumed-memory=$_SERVICEWARNING$ --critical-consumed-memory=$_SERVICECRITICAL$ $_SERVICEOPTION$
  • Décrire les macros
  • Sauvegarder

Commande-Check-CPU-ESXi

  • Allez dans Configuration > Commandes > Ajouter
  • Nom de commande : Check-CPU-ESXi
  • Ligne de commande : copier/coller
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --custommode=connector --connector-hostname=$_SERVICECONNECTOR$ --container=$_SERVICECONTAINER$ --mode=$_SERVICEMODE$ --esx-hostname=$_SERVICEESXNAME$ --warning-total-cpu=$_SERVICEWARNING$ --critical-total-cpu=$_SERVICECRITICAL$
  • Décrire les macros
  • Sauvegarder

Création d’hôte ESXi

  • Allez dans Configuration > Hôte > Ajouter
  • Adapter les paramètres :

Creation Hote Centreon Monitoring

  • Sauvegarder

Remarque : voici la commande check_centreon_ping :

$USER1$/check_icmp -H $HOSTADDRESS$ -n $ARG1$ -w $ARG2$ -c $ARG3$

ou encore :

$USER1$/check_centreon_ping -H $HOSTADDRESS$ -w 200,20% -c 500,40%

C’est juste un ping d’hôte.

Création de services

Nous allons maintenant créer les services pour notre ESXi.

Service-Check-Health-ESXi

  • Allez dans Configuration > Services > Ajouter
    • Description : Check-Health
    • Lié aux hôtes : ESXi-HOST (votre serveur ESXi)
    • Commande de vérification : sélectionnez la commande : Check-Health-ESXi
    • PLUGIN : apps::vmware::connector::plugin

Check health ESXi Centreon Service

  • CONNECTOR : L’adresse de votre serveur Centreon (localhost ou l’adresse IP). On passe par le fichier de conf centreon_vmware ci-dessous :

Centreon vmware Conf vSphere vCenter

  • OPTION : --filter --disconnect-status='ok' --verbose
  • Valider la création du service:

Service-Check-CPU-ESXi

  • Allez dans Configuration > Services > Ajouter
    • Description : Check-CPU
    • Lié aux hôtes : ESXi-HOST (votre serveur ESXi)
    • Commande de vérification : sélectionnez la commande : Check-CPU-ESXi
    • PLUGIN : apps::vmware::connector::plugin

Check CPU ESXi Usage Centreon

  • Valider

Service-Check-Memory-ESXi

  • Allez dans Configuration > Services > Ajouter
    • Description : Check-Memory
    • Lié aux hôtes : ESXi-HOST (votre serveur ESXi)
    • Commande de vérification : sélectionnez la commande : Check-Memory-ESXi
    • PLUGIN : apps::vmware::connector::plugin

Check Memory ESXi Centreon

  • Enregistrer

Monitoring VMWare vCenter ESXi (Résultat)

Exporter la configuration pour prendre en compte les nouveaux services. Voir comment exporter la configuration ici : Exporter

Après quelques secondes, voici le résultat.

vCenter ESXi Monitoring Centreon Server

C’est terminé les amis. A vous de mettre en place les autres modes. Voir également mon pack d’icônes pour Centreon ici : centreon-icones-pack/

Mon projet sur la mise en place et la supervision d’un serveur VMWare ESXi est terminé . En cas de besoin, n’hésitez pas à me demander en commentaire ou via le forum.

Bonne journée et à bientôt.

Supervision Systèmes & Réseaux

Voir mes articles sur la supervision systèmes & réseaux :

 
Besoin d’aide ? des questions ?

Venez sur le forum
logo Forum Pixelabs
***********
La rédaction de cette documentation demande beaucoup de temps, de motivation, mais surtout beaucoup de café 🙂

Vous aimez pixelabs ?

Offrez moi un petit café en cliquant sur la tasse ci-dessous.
pixelans_donation
Merci !

98 réponses

  1. gram dit :

    Bonjour,
    je suis nouveau membre j’ai aussi le problème "KNOWN: Cannot find 'HostSystem' object |"
    par contre :

     "./centreon_plugins.pl --plugin=apps::vmware::connector::plugin  --custommode=connector --connector-hostname=localhost --container=default --mode=getmap "

    est ok

    Est-ce que quelqu’un peut m’aider? Merci

    • sysadmin dit :

      Salut gram,
      Tu peux me donner la commande qui te renvoie cette erreur ? “KNOWN: Cannot find ‘HostSystem’ object |”

      Et aussi le résultat de la commande avec le mode –mode=getmap

  2. sunnywest dit :

    Bonjour ,

    J’ai souhaité mettre en place la supervision sur un esxi 6.0.0. J’ai donc suivi le tuto .
    Cependant, j’ai eu un souci. En ligne de commande, lorsque j’avais voulu voir l’état de santé de mon esxi, ça a fonctionné la première fois et depuis rien. J’ai le message d’erreur UNKNOW: Cannot get response (timeout received). J’ai regardé du côté du fichier de config : “nano centreon_vmware.pm” ça m’a l’air normal…mais , j’ai remarqué que je ne pouvais pas appliquer les droits :
    [root@centreon plugins]# chmod 775 /tmp/centreon_vmware/ &
    [root@centreon plugins]# chown centreon: /tmp/centreon_vmware/ sur “centreon_vmware”.
    Pouvez-vous m’aider à résoudre ce mystère ?

  3. sunnywest dit :

    Bonjour,

    Pouvez-vous me diriger vers l’article sur la supervision des quotas (J’ai un quota monter en partage sur un serveur Windows 2012 R2 à superviser) svp ?

    Merci.

  4. jerome1988 dit :

    Bonjour Pixelabs,

    merci pour ces très bons tutos sur la supervision Centreon.

    J’ai un bug sur le plugin “état de santé” d’un ESXi, comme tu peux le voir ci-dessous, j’ai composant qui remonte en rouge sur ma sonde mais l’état ne change pas de “OK” à “CRITIQUE”

    J’ai vu dans les options qu’il y avait la possibilité de rajouter "--warning-* et --critique-*" avec "total_problems, problems_yellow, problems_red, etc..." mais cela ne fonctionne pas. J’au ce bug sur toute mes sondes

    As-tu une idée pour résoudre mon Bug ?

    Je te remercie. A bientôt

    Jérôme

    Statut détaillé	
    OK: 1 total health issue(s) found - Host '10.104.0.211' : status connected - 230 health checks are green, 230 total health issue(s) found, 0 yellow health issue(s) found, 1 red health issue(s) found - Memory: The physical element is failing
    Informations d'état étendues	
    checking host '10.104.0.211'
    status connected
    230 health checks are green, 230 total health issue(s) found, 0 yellow health issue(s) found, 1 red health issue(s) found
    Memory: The physical element is failing
    
    Données de performance	
    'total_problems'=1;;;0;231
    'problems'=230;;;0;231
    'problems_yellow'=0;;;0;231
    'problems_red'=1;;;0;231
    • sysadmin dit :

      Salut jerome1988,
      Peux-tu me donner la commande CLI ?
      Je vais voir si je peux filtrer le résultat de mon côté.

      • jerome1988 dit :

        Veuillez m’excuser pour mon dernier commentaire en doublon. Vous pouvez le supprimer.

        Voici la commande:

        ./centreon_vmware_connector_client.pl --plugin=apps::vmware::connector::plugin --custommode=connector --connector-hostname=localhost --container=default --verbose --mode=health-host --esx-hostname=IP

        J’ai également essayé avec ./centreon_plugins.pl, le résultat est le même

        Merci,

        • sysadmin dit :

          Rajoutes le seuil CRITICAL suivant à ta commande : --critical-problems-red=':1'
          Cela concerne uniquement les problèmes critiques=rouge (et non warning=orange).

          Si tu veux avoir les deux (Critical et Warning), il faut mettre à la place : --critical-total-problems=':1'

          Tiens moi au courant 🙂

          • jerome1988 dit :

            Bonjour,

            merci pour ton retour. Malheureusement mes sondes apparaissent toujours en état OK, que ce soit sur sur des problems red ou yellow. Le plugin n’intègre pas de changement d’état de la sonde, lorsqu’un problème est détecté ?

            Une autre question, peut-on superviser les partitions d’une VM (disque C:, D:, etc..), depuis le plugin vmware. Je n’ai pas trouvé l’option.

            Merci

            Jérôme

          • sysadmin dit :

            Salut,
            Je peux y jeter un coup d’oeil à distance, si c’est possible, envoies moi un mail (sysadmin[at]pixelabs.fr).
            Pour les partitions disque de tes VM, tu dois passer par le plugin Windows.
            Bonne journée.
            -sysadmin.

  5. Valentin dit :

    Bonjour,
    J’ai plusieurs serveurs ESXi a superviser, je fonctionne par “services par groupes d’hôtes” dans Centreon, comment puis-je procéder pour la variable “ESXNAME” ?

    • sysadmin dit :

      Salut Valentin,
      Je ne comprends pas ce que tu veux dire ?

    • Valentin dit :

      Je précise que j’ai essayé en ne mettant rien pour vouloir dire “tous” mais cela ne fonctionne pas, même en testant directement la ligne de commande sur le serveur centreon.

      • sysadmin dit :

        Montre moi la ligne de commande et dis moi ce que tu veux superviser sur l’ESX et quel mode tu veux utiliser ?
        Je ne sais toujours pas ce que tu veux faire. Tu veux superviser plusieurs serveur ESX avec une seule commande ?

        • Valentin dit :

          Je veux superviser pour le moment le basique comme tu as fais dans le tutoriel, sur 3 ESXi, à la différence que moi je fonctionne par services
          par groupe d’hôtes et non services par hôte. C’est à dire que dans la configuration d’un service (CPU par exemple), j’impacte les 3 ESXi directement et non pas un seul. Vois-tu ce que je veux dire ?

          Edit :
          Dans l’état actuel, je reçois un (No output returned from plugin) en statut détaillé.

          Edit :
          J’ai trouvé mon problème pour la partie (No output returned from plugin), par contre toujours le “UNKNOWN: Argument error: esx hostname cannot be null”.

          • sysadmin dit :

            A ma connaissance, c’est impossible, la macro ESXNAME ne peut pas être vide.
            Peux-tu me montrer la commande CLI ainsi que la commande Centreon Web ?

  6. Admin-SI dit :

    Bonjour,

    Centreon me retourne uniquement “OK:” sur le détail du statut des ESX. il n’indique pas le reste du statut de la commande (par exemple le cpu).
    Et ce, peu importe la variable que j’introduis dans la sonde, même fausse. J’en conclu que la sonde ne fais pas correctement son travail.
    Auriez-vous une idée ?

    Edit :
    J’ai oublié de vous introduire les logs.
    Voici les logs :

    2020-03-02 09:30:41 - 'vcenter01' SOAP request error - possibly a protocol issue: 500 Server closed connection without sending any data back
    2020-03-02 09:30:58 - 'vcenter02' SOAP request error - possibly a protocol issue: 500 Server closed connection without sending any data back
    2020-03-02 09:31:08 - 'vcenter03' SOAP request error - possibly a protocol issue: 500 Server closed connection without sending any data back

    De plus, la commande “getmap” ne me retourne absolument aucune valeur, mais aucune erreur non plus.

    • sysadmin dit :

      Salut Admin-SI,
      Merci pour les logs 🙂
      Assures toi que les modules perl suivant sont installés :

      cpan -i LWP
      cpan -i SOAP
      cpan -i Crypt::SSLeay
      cpan -i IO::Socket::SSL

      tiens moi au courant 🙂
      Bonne journée.

      • Admin-SI dit :

        Bonjour sysadmin,

        Entre temps j’ai réussi à résoudre le problème.
        Suite à la migration de centroen 2.8.26 à la 18.10, je n’avais effectivement pas mis à jour les plugins Centreon; ce qui était la cause de mon problème.
        Très bon boulot de ta part et merci encore.

        Bonne journée également.