jueves, 21 de marzo de 2013

Monitorización de VMWARE con Centreon/Nagios

Buenos días,

 hoy vamos a ver como monitorizar nuestro servidores de vmware desde Centreon o Nagios. El mejor sitio para empezar a buscar scripts i recursos de monitorización de Nagios es "Nagios Exchange". Tanto usando la búsqueda como navegando por sus categorías nos podemos encontrar una gran cantidad de scripts para casi todos nuestros dispositivos, servidores o servicios.

Recordar que cualquier script de Nagios es plenamente compatible con Centreon.

De Vmware hay unos cuantos con buenas referencias. Yo personalmente he usado el siguiente ya que me parece maduro y con ciertas garantías. Ha sido desarrollado por el equipo "OP5". Se encargan de realizan un producto de monitorización profesional propio y dan cierta sensación de seguridad.

Una vez descargado el script, al leer el README podemos ver que hay que hacer unos preparativos previos antes de su instalación. El pilar básico de funcionamiento es el "vSphere SDK for Perl", es un software de desarrollo en PERL hecho por vmware para poder consultar las API de sus productos. Para poder descargarlo tenemos que tener un usuario y password en www.vmware.com, el registro es gratuito.

El link directo de descarga es el siguiente:

Descargaremos la versión 5.1
VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz

Un punto fuerte de la instalación es que está todo bien documentado por parte de vmware. La documentación la podéis encontrar aquí.

Nuestro servidor de Centreon corre con RHEL 5.9, así que los requisitos de instalación son los siguientes:


Después hay una serie de módulos que la propia instalación descarga de los repositorios oficiales de redhat o los descarga de Perl mediante CPAN. El tema de los requerimientos de perl a veces es un poco tedioso, ya que hay paquetes en el repositorio y  otros que solo se encuentran por CPAN. Algunas veces nos podemos encontrar que se han de mezclar ambos para que nuestro software funcione. 
Mi recomendación es instalarlos o desde el repositorio de redhat o desde el Perl CPAN perno no mezclar ya que podría darnos problemas en el fututo. En este caso no hay otra opción que ir complementando ambas fuentes de paquetes.

Paquetes/módulos de Perl requeridos:

Crypt-SSLeay-0.55 (0.55-0.9.7 or 0.55-0.9.8)   
IO-Compress-Base-2.037   
Compress-Zlib-2.037   
IO-Compress-Zlib-2.037
Compress-Raw-Zlib-2.037   
Archive-Zip-1.28   
Data-Dumper-2.121   
XML-LibXML-1.63   
libwww-perl-5.805   
LWP-Protocol-https-6.02   
XML-LibXML-Common-0.13   
XML-NamespaceSupport-1.09   
XML-SAX-0.16   
Data-Dump-1.15   
URI-1.37
UUID-0.03
SOAP-Lite-0.710.08
HTML-Parser-3.60
version-0.78
Class-MethodMaker-2.10
Una vez se ha conseguido cumplir con los requerimientos, realizaremos la instalación de SDK:

# tar -xvf VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz
# cd vmware-vsphere-cli-distrib/
#./vmware-install.pl

Aceptaremos la EULA (End User Licencese Agreement) y dejaremos que instalé paquetes y dependencias. Al acabar habrá dejado el modulo de perl en su directorio correspondiente.

Para ver que realmente el modulo de perl exista lo podemos hacer con el siguiente comando:

# perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC' |grep VMware
/usr/lib/perl5/5.8.8/VMware/VIM2Stub.pm
/usr/lib/perl5/5.8.8/VMware/VILib.pm
/usr/lib/perl5/5.8.8/VMware/VICredStore.pm
.
.
.
.

Solo nos queda copiar el script de Nagios Exchange en nuestro directorio de plugins de Nagios y probarlo:

#cp check_vmware_api.pl /usr/lib64/nagios/plugins
# cd /usr/lib64/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

Vamos a probar de lanzar alguna consulta a nuestro servidor de VCENTER para ver si todo funciona.
#./check_vmware_api.pl -D vcenter -C MY_CLUSTER -u myuser -p mypassword -l runtime list
CHECK_VMWARE_API.PL CRITICAL - Server version unavailable at 'https://vcenter:443/sdk/vimService.wsdl' at /usr/lib/perl5/5.8.8/VMware/VICommon.pm line 545

Si nos aparece esté error pueden ser dos cosas. Las consultas se realizan con SOAP, XML y HTTPS. Recordar desactivar la variable de "https_proxy" del sistemas, ya que la consulta es en nuestra red y no queremos que pase por el proxy.

#unset https_proxy

Y por otra banda añadir al script de Nagios Exchange la siguiente línea, justo después del la línea del interprete perl:

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

Evitará verificar el certificado SSL.

Lo volvemos a probar:
#./check_vmware_api.pl -D vcenter -C MY_CLUSTER -u myuser -p mypassword -l runtime list
CHECK_VMWARE_API.PL OK - 450/499 VMs up, overall status=green, no config issues | vmcount=450units;;
Funciona perfectamente. Para más delante miraremos de añadir los chequeos en Nagios/Centreon de los host/hipervisores, cluster, virtual center y máquinas virtuales.


Saludos!!



No hay comentarios:

Publicar un comentario