Nous allons voir comment permettre à un serveur Centreon de surveiller des ESXi avec le script check_vmware_api.pl.
Installation des dépendances
yum install -y openssl-devel perl-Archive-Zip perl-Class-MethodMaker uuid-perl perl-SOAP-Lite perl-XML-SAX perl-XML-NamespaceSupport perl-XML-LibXML perl-MIME-Lite perl-MIME-Types perl-MailTools perl-TimeDate uuid libuuid perl-Data-Dump perl-UUID cpan libxml2-devel perl-libwww-perl perl-Test-MockObject perl-Test-Simple perl-Monitoring-Plugin perl-Class-Accessor perl-Config-Tiny gcc python perl-Nagios-Plugin
Installation du VMware vSphere Perl SDK
L’installation du « VMware vSphere Perl SDK » est indispensable.
Vous pourrez le télécharger après vous êtes créé un compte VMware.
vSphere SDK for Perl 5.5U2
https://my.vmware.com/web/vmware/details?downloadGroup=SDKPERL552&productId=353
vSphere SDK for Perl 6.0U2
https://my.vmware.com/web/vmware/details?downloadGroup=PERLSDK60U2&productId=610
vSphere Perl SDK 6.5
https://my.vmware.com/web/vmware/details?downloadGroup=VS-PERL-SDK65&productId=614
Une fois téléchargé, on décompresse l’archive et on installe le SDK:
tar xvf VMware-vSphere-Perl-SDK-6.5.0-4566394.x86_64.tar.gz
cd vmware-vsphere-cli-distrib/
perl vmware-install.pl
Installation des module Perl
Perl aura besoin de plusieurs module pour pouvoir exécuter le script check_vmware_api.pl.
Si vous êtes derrière un proxy, il faudra le déclarer avant d’installer les modules:
perl -MCPAN -e shell
o conf init /proxy/
Your ftp_proxy? http://IP:PORT/
Your http_proxy? http://IP:PORT/
Your no_proxy? http://IP:PORT/
Your proxy user id?
o conf commit
On peut maintenant installer nos modules:
perl -MCPAN -e 'install Params::Validate'
perl -MCPAN -e 'install Nagios::Plugin'
perl -MCPAN -e 'install Monitor::Plugin'
perl -MCPAN -e 'install Monitoring::Plugin'
perl -MCPAN -e 'install Math::Calc::Units'
perl -MCPAN -e 'install Config::Tiny'
Installation de la commande check_vmware_api.pl
https://github.com/op5/check_vmware_api
cd /tmp
wget https://github.com/op5/check_vmware_api/archive/master.zip
unzip master.zip
cd check_vmware_api-master/
mv check_vmware_api.pl /usr/lib/nagios/plugins/
Test du script
/usr/lib/nagios/plugins/check_vmware_api.pl
Usage: check_vmware_api.pl -D <data_center> | -H <host_name> [ -C <cluster_name> ] [ -N <vm_name> ]
-u <user> -p <pass> | -f <authfile>
-l <command> [ -s <subcommand> ] [ -T <timeshift> ] [ -i <interval> ]
[ -x <black_list> ] [ -o <additional_options> ]
[ -t <timeout> ] [ -w <warn_range> ] [ -c <crit_range> ]
[ -V ] [ -h ]
Missing argument: command
Le script fonctionne, nous pouvons donc essayer d’interroger notre ESXi:
/usr/local/nagios/libexec/check_vmware_api.pl -H 192.168.122.64 -u utilisateur -p mot_de_passe -l cpu -s usage
Commandes à configurer dans Centreon
check_esx_vmfs
$USER1$/check_vmware_api.pl -D $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l vmfs -o used -s $_SERVICEDATASTORENAME$ -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Vérifie le niveau d’utilisation du datastore
check_esx_cpu
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l cpu -s usage -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Vérifie la charge CPU de l’ESXi – Argument : niveau WARNING et CRITICAL (en %)
check_esx_health
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l runtime -s health
Vérifie la santé du serveur ESXi
check_esx_issues
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l runtime -s issues
Vérifie les problèmes du serveur ESXi
check_esx_status
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l runtime -s status
Vérifie l’état du serveur ESXi
check_esx_mem
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l mem -s usage -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Vérifie la charge mémoire de l’ESXi
check_esx_swap
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l mem -s swap -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Vérifie la charge mémoire de l’ESXi
check_esx_io_read
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l io -s read -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Vérifie les entrées/sorties en lecture de l’ESXi
check_esx_io_write
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l io -s write -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Vérifie les entrées/sorties en écriture de l’ESXi
check_esx_net
$USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $_HOSTUSERESX$ -p $_HOSTUSERPASSWORD$ -l net -s usage -w $_SERVICEWARNING$ -c $_SERVICECRITICAL$
Vérifie la charge réseaux de l’ESXi – Argument : niveau WARNING et CRITICAL (en Kbps)