Table des matières

check_esx3

Où comment réaliser la supervision d’un serveur vmware esx

Introduction

La supervision des serveurs esx n’est pas encore très développée dans le monde nagios. La société op5 (à l’origine d’un certains nombre de projets intéressants) propose le plugin check_esx3 pour répondre à ce besoin.

certains utilisateurs se sont plaints sur les mailing lists que le plugin pose problème avec esx4. Pour ma part j’ai rencontré le même genre de problèmes avec des serveurs esx3 et esx4. Cela vient à la fois du plugin qui utilise une ancienne méthode de connexion et du vi perl toolkit qui n’évalue pas correctement une variable non initialisée.

Ce tutoriel présente l’installation de check_esx3, de ses dépendances et un moyen de corriger le code.

Plate-forme cible

Nous effectuerons le déploiement sur une ubuntu 8.04 (jeos). Le serveur supervisé est un serveur esx4.

Pour info : j’ai également réalisé ce déploiement sur un serveur nagios sous solaris 10 (sparc) qui supervise des serveurs esx3.

Installation

sudo apt-get update
sudo apt-get upgrade

Installation de vi perl toolkit



		wget http://search.cpan.org/CPAN/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-6.54.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/URI-1.51.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.020.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.020.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/IO-Compress-2.020.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.61.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/libwww-perl-5.829.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.10.tar.gz
  		wget http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-SAX-0.96.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/P/PH/PHISH/XML-LibXML-Common-0.13.tar.gz
  		wget http://search.cpan.org/CPAN/authors/id/P/PA/PAJAS/XML-LibXML-1.69.tar.gz
  		wget http://search.cpan.org/CPAN/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-2.15.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/D/DL/DLAND/Crypt-SSLeay-0.57.tar.gz
		wget http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/Data-Dumper-2.124.tar.gz
		wget http://freefr.dl.sourceforge.net/project/viperltoolkit/viperltoolkit-beta1/VI%20Perl%20Toolkit%20Beta/viperltoolkit-beta1.zip
Perl Makefile.PL
make
make test (cette commande doit renvoyer à la fin All tests successfull)
make install

Installation de Nagios::Plugin

wget http://search.cpan.org/CPAN/authors/id/K/KA/KASEI/Class-Accessor-0.33.tar.gz
wget http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Params-Validate-0.91.tar.gz
wget http://search.cpan.org/CPAN/authors/id/S/SF/SFINK/Math-Calc-Units-1.06.tar.gz
wget http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Config-Tiny-2.12.tar.gz
wget http://search.cpan.org/CPAN/authors/id/T/TO/TONVOON/Nagios-Plugin-0.33.tar.gz
perl Makefile.PL
make
make test (cette commande doit renvoyer à la fin All tests successfull)
make install

Installation de check_esx3.pl

git clone git://git.op5.org/nagios/op5plugins.git
cd op5plugins
cp check_esx3.pl /opt/nagios/libexec/
chown nagios:nagios /opt/nagios/libexec/check_esx3.pl
OP5 a changé le nom du plugin qui s’appelle maintenant check_vmware_api.pl

Patcher l'installation

	if (defined($datacenter))
	{
		if (defined($sessionfile) and -e $sessionfile)
		{
			Vim::load_session(service_url => $datacenter, session_file => $sessionfile);
		}
		Util::connect("https://" . $datacenter . "/sdk/webService", $username, $password);

	}
	elsif (defined($host))
	{
		if (defined($sessionfile) and -e $sessionfile)
		{
			Vim::load_session(service_url => $host, session_file => $sessionfile);
		}
		Util::connect("https://" . $host . "/sdk/webService", $username, $password);

	}
	if (defined($datacenter))
	{
		if (defined($sessionfile) and -e $sessionfile)
		{
			Vim::load_session(service_url => $datacenter, session_file => $sessionfile);
		}
		#Util::connect("https://" . $datacenter . "/sdk/webService", $username, $password);
		my $service_url="https://".$datacenter."/sdk/vimService";
		Vim::login(service_url => $service_url, user_name => $username, password => $password);

	}
	elsif (defined($host))
	{
		if (defined($sessionfile) and -e $sessionfile)
		{
			Vim::load_session(service_url => $host, session_file => $sessionfile);
		}
		#Util::connect("https://" . $host . "/sdk/webService", $username, $password);
		my $service_url="https://".$host."/sdk/vimService";
		Vim::login(service_url => $service_url, user_name => $username, password => $password);

	}
Util::disconnect();
Vim::logout();
if ( defined ( $properties ) ) {
if ($properties ne "") {

Tests

perl /opt/nagios/libexec/check_esx3.pl -H XXX.XXX.XXX.XXX -u utilisateur -p motdepasse -l cpu -s usage
CHECK_ESX3.PL OK - cpu usage=1.16 % | cpu_usage=1.16%;;

Les possibilités offertes par le plugin

Le plugin check_esx présente de nombreux points de contrôles. Il permet non seulement de vérifier les serveurs esx, mais également les cluster esx (vsphere et antérieur). Cela permet entre autre à partir d’une seule connexion de tester l’ensemble des vm de l’infrastructure ou qu’elles soient (à priori nous ne sommes pas censés savoir à un instant t ou est exécutée une vm ni ou sont placés les disques virtuels). Tout cela pour dire qu’il vaut mieux effectuer ses contrôle au niveau infrastructure (le terme utilisé dans le plugin est : datacenter) qu’au niveau serveur esx.

Les points de contrôle sont les suivants :

L’appel de check_esx3.pl avec l’argument -h donne l’ensemble des possibilités.