Nagios check vmware esx - CentOS 6
Mi segno qui i passi anche per mia futura memoria:
- Installazione Perl-SDK di VMware 5.1
- Installazione / configurazione Op5 check_esx (check_vmware_api) plugin for Nagios
- Configurazione Nagios
Ambiente:
- CentOS 6.x
- Nagios e PNP4Nagios
- Perl-SDK di VMware 5.1
- Op5 check_esx (check_vmware_api) plugin for Nagios
Procedura:
CentOS, Nagios e PNP4Nagios li considero già installati e funzionanti
Scaricare, una volta autenticati, e installare Perl-SDK di VMware 5.1
- installare un po' di pre-requisiti con il comando:
yum -y install 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
- estrarre il file VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz ed lanciare l'installazione
tar zxvf VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz
cd vmware-vsphere-cli-distrib
./vmware-install.pl - Qui sorgono due problemi che si risolvono così
- L'installazione del perl-SDK di VMware si blocca perche chiede l'httpproxy e l'ftpproxy anche se non sono necessari. Modificare il file vmware-install.pl in questo modo
my $httpproxy =1;
my $ftpproxy =1; - Non riesce a installare il componente perl UUID. Io la soluzione l'ho trovata qui:
yum install libuuid-devel
perl -MCPAN -e'install UUID' - Ora i problemi dovrebbero essere risolti e quindi si può rilanciare il comando:
./vmware-install.pl
Installare perl-Nagios-Plugin con il comando
yum install perl-Nagios-Plugin
Scaricare il plugin di Op5 check_vmware_api.pl:
cd /usr/local/nagios/libexec/
wget "http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob_plain;f=check_vmware_api.pl" -O check_vmware_api.pl
chmod +x check_vmware_api.pl
chown nagios.nagios check_vmware_api.plConfigurare un Utente dentro a ESXi con permessi in sola lettura:
- "Tramite vSphere Client –> Local Users & Groups, creare un utente che sarà utilizzato dal plugin per monitorare il sistema. Prestare attenzione al formato della password che richiede certi criteri di password complexity." Una buona password potrebbe essere quella suggerita da Come scegliere una password 2 ovvero due parole divise da un numero e almeno una maiuscola tipo passione4Patata
-
"In vSphere Client –> Permissions, assegnare il ruolo di Read-only all’utente appena creato e cliccare su OK."
Ora possiamo testare il funzionamento del plugin con i comandi:
/usr/local/nagios/libexec/check_vmware_api.pl -H IpEsxiHost -u UtenteCreato -p PasswordScelta -l runtime
CHECK_VMWARE_API.PL OK - 13/13 VMs up, overall status=green, connection state=connected, maintenance=no, All 194 health checks are Green, 2 config issue(s) | vmcount=13units;; health_issues=0;; config_issues=2;;
oppure/usr/local/nagios/libexec/check_vmware_api.pl --H IpEsxiHost -u UtenteCreato -p PasswordScelta -l cpu -s usage -w 80 -c 90
CHECK_VMWARE_API.PL OK - cpu usage=9.12 % | cpu_usage=9.12%;80;90E' giunta l'ora di configurare Nagios!
- Dentro al file /usr/local/nagios/etc/resource.cfg andiamo ad aggiungere
##Usati dal plugin check_vmware_api.pl 20130521 - http://www.feub.net/2010/12/monitoring-vmware-esxi-and-vsphere-with-nagios/
$USER11$=UtenteCreato
$USER12$=PasswordScelta - Al file /usr/local/nagios/etc/objects/commands.cfg andiamo aggiungere questi template
#21/05/2013 - DG # check vmware esxi machine # check cpu define command{ command_name check_esx_cpu command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l cpu -s usage -w $ARG1$ -c $ARG2$ } # check memory usage define command{ command_name check_esx_mem command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l mem -s usage -w $ARG1$ -c $ARG2$ } # check memory usage define command{ command_name check_esx_swap command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l mem -s swap -w $ARG1$ -c $ARG2$ } # check net usage define command{ command_name check_esx_net command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l net -s usage -w $ARG1$ -c $ARG2$ } # check runtime status define command{ command_name check_esx_runtime command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l runtime -s status } # check runtime status define command{ command_name check_esx_runtime_issues command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l runtime -s issues } # check io read define command{ command_name check_esx_ioread command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l io -s read -w $ARG1$ -c $ARG2$ } # check io write define command{ command_name check_esx_iowrite command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l io -s write -w $ARG1$ -c $ARG2$ } # check vmfs define command{ command_name check_esx_vmfs command_line $USER1$/check_vmware_api.pl -H $HOSTADDRESS$ -u $USER11$ -p $USER12$ -l vmfs -s $ARG1$ -o used -w $ARG2$ -c $ARG3$ } - Prepariamo il file relativo al server VMWare Esxi da monitorare dentro alla cartella /usr/local/nagios/etc/servers/EsxiHostName.cfg
############################################################################### ############################################################################### # # HOST DEFINITION # ############################################################################### ############################################################################### define host{ use linux-server,host-pnp ; Inherit default values from a template host_name EsxiHostName ; The name we're giving to this host alias EsxiHostNameAlias ; A longer name associated with the host address IpEsxiHost ; IP address of the host hostgroups VirtualServer ; Host groups this host is associated with } ############################################################################### ############################################################################### # # SERVICE DEFINITIONS # ############################################################################### define service{ use local-service,srv-pnp ; Name of service template to use host_name EsxiHostName service_description PING check_command check_ping!100.0,20%!500.0,60% } # VMWare # check cpu define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi CPU Load check_command check_esx_cpu!80!90 } # check memory usage define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi Memory usage check_command check_esx_mem!80!90 } # check net define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi Network usage check_command check_esx_net!102400!204800 } # check runtime status define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi Runtime status check_command check_esx_runtime } # check runtime issues define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi Runtime issues check_command check_esx_runtime_issues } # check io read define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi IO read check_command check_esx_ioread!40!90 } # check io write define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi IO write check_command check_esx_iowrite!40!90 } # check vmfs define service{ use generic-service,srv-pnp host_name EsxiHostName service_description ESXi datastore1 check_command check_esx_vmfs!datastore1!80%!90% } - Testiamo il tutto e rilanciamo Nagios:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios restart Se tutto è in ordine adesso dovremmo trovarci nel nostro pannello una situazione come questa

Nagios check_esx
Riferimenti:
- La partenza di tutto è stato questo post di Paolo che ringrazio anche per le immagini relative alla creazione dell'utente in Esxi - Monitorare server ESX(i) con Nagios tramite plugin check_esx su CentOS. L'unica cosa da fare attenzione è che fa riferimento ancora al vecchio nome del plugin e non sono aggiornati i riferimenti per il download.
- Il link corretto e ufficiale da cui scaricare il plugin di Op5 lo trovate a questo indirizzo http://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/VMWare/check_vmware_api/details
- Gli scheletri dei file di configurazione di Nagios sono tratti da Monitoring VMware ESXi and vSphere with Nagios riveduti e corretti by me
- Il dettaglio di tutto quello che si può monitorare con il plugin check_vmware_esxi.pl lo trovare nel sito di Op5 http://www.op5.com/how-to/monitoring-vmware-esx-3-x-esxi-vsphere-4-and-vcenter-server/ .
- Tutte, ma proprio tutte le opzioni le trovate con il comando
/usr/local/nagios/libexec/check_vmware_api.pl --help
Kim: Ancora un altro piano per la conquista del mondo.
Ron: Oppure vorrà obbligare la gente ad ascoltare le storie sulla sua infanzia contorta.










Flickr/dgrossato
Linkedin/dgrossato
YouTube/dgrossato
Del.icio.us/dgrossato