Où comment réaliser la supervision d’un serveur vmware esx
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.
Ce tutoriel présente l’installation de check_esx3, de ses dépendances et un moyen de corriger le code.
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.
sudo apt-get update sudo apt-get upgrade
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
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
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
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 "") {
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%;;
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 :