Monitorizar servidores vSphere ESXi con Nagios + plugin Check_mk

Introducción.

En artículos previos habíamos visto como monitorizar nuestro vCenter appliance con CMK con la instalación del agente CMK para Linux en el appliance y también vimos la Monitorización de servidores vSphere ESX(i) mediante el plugin de OP5 check_vmware_api. Aunque este último plugin es muy interesante tiene sus limitaciones en cuanto a rendimiento. Desde la versión 1.2.3i1 de check_mk tenemos disponible un plugin bastante completo para monitorizar nuestros servidores vSphere ESXi con un mejor rendimiento y completamente integrado con nuestra herramienta favorita. Podemos encontrar la documentación como siempre en su página oficial.

En nuestro caso, antes de ponernos manos a la obra con la configuración del plugin vamos a configurar en los servidores ESXi el usuario que usaremos desde este para conectarnos y obtener la información. Contamos con las opciones de monitorizar los servidores a través de vCenter o monitorizarlos directamente sin intermediarios. Yo soy partidario siempre de eliminar intermediarios y eliminar presión sobre el acceso a la API de los vCenter que parece es algo que no llevan del todo bien, pero explicaré como realizar ambas configuraciones: acceso directamente contra los ESXi o acceso a los datos de estos a través del vCenter.

 

Creación de usuario y perfil en los servidores vSphere ESXi y/o vCenter

Para poder conectarnos directamente desde el Plugin contra los servidores ESXi y/o vCenter debemos primero crear un usuario y un rol con los permisos adecuados mínimos en estos. Es muy importante usar solo los permisos exclusivamente necesarios.

Es necesario crear un usuario local en el ESXi. Para ello hay que conectarse directamente contra el ESXi con viclient (probablemente se pueda realizar también mediante scripts). Este paso lo obviamos para el vCenter ya que en ese caso se usarán usuarios “existentes” locales del servidor de vCenter o más normal, usuarios del Directorio Activo al que está conectado.

Crearemos el usuario local (pestaña “Local Users & Groups”). P.e.: “nagios”

cmk_vmware_create_esxi_user

Creamos p.e. el Role “Monitoring” desde Menu / Home / Roles / Add Role (marcamos unicamente dentro de Apartado “Host” la opción “CIM”. Ese paso es idéntico tanto para el servidor ESXi como para el vCenter.

cmk_vmware_create_esxi_rol_monitor

Asignamos el Rol de Monitor al usuario Nagios en la pestaña “Permissions”, botón derecho “Add permission”, seleccionamos usuario Nagios y Role “Monitoring”. Ese paso es idéntico tanto para el servidor ESXi como para el vCenter.

cmk_vmware_assign_esxi_user_to_rol

De esta forma tendremos ya creado nuestro usuario de acceso solo para las propiedades de los servidores accesibles mediante CIM.

Requisitos previos en el servidor de Nagios (con CMK).

Para que funcione el plugin específico de CMK solo nos exige un requisito previo. Se necesita instalar previamente “ pysphere-0.1.7 (Python API for interaction with the vSphere Web Services SDK). En su página tenemos posibles opciones de instalación y pruebas. En principio parece que es necesario solo para la conexión contra el vCenter pero no para conectarnos directamente contra los ESXi. En un Centos, con los repositorios EPEL configurados sería tan sencillo como:

yum install python-pip.noarch
easy_install -U pysphere

Probando el plugin.

Antes de configurar los chequeos en CMK podemos probar en línea de comandos que el plugin funcione y nos devuelva datos. Normalmente el agente vmware para cmk “agent_vsphere” estará en la ubicación: /usr/share/check_mk/agents/special. Unos ejemplos para nuestro usuario “nagios” con clave de acceso “PASSWORD”:

Contra vCenter (si hemos creado el usuario en vCenter)

./agent_vsphere -u 'nagios' -s 'PASSWORD' -i hostsystem --hostname 'esxi-0005.midominio.es' --timeout 5 vcenter5.midominio.es

Contra un servidor Esxi (habiendo creado previamente el usuario en el ESXi como se indica)

./agent_vsphere -u 'nagios' -s 'PASSWORD' -i hostsystem,datastore,counters --direct --timeout 5 esxi-0005.midominio.es

Mediante la opción -i definimos las opciones a inventariar pudiendo obtener información incluso de máquinas virtuales. Las posibles opciones son bastante explicitas (hostsystem, virtualmachine, datastore, counters) Solo tenemos que jugar con ellas para ver que nos interesa.

Configuración de objetos en check_mk

Si no controlas la configuración de objetos con CMK pasate primero por este artículo “Check_mk. Chequeos. Primeros pasos.”
La configuración en CMK la podremos realizar mediante su interface gráfico WATO o directamente en los ficheros de configuración como en nuestro caso. La configuración a añadir en los ficheros de cmk es un array un tanto raro ya que usa lo que denomina agentes especiales. En cualquier caso viene en la documentación.

La siguiente definición nos vale para conectarnos a los hosts que tengan el tag “esxi” con el usuario “nagios” y el password PASSWORD y obtener una serie de información de estos a monitorizar (hostsystems, datastore, counters,…)

datasource_programs.append((
"/usr/share/check_mk/agents/special/agent_vsphere -u 'nagios' -s 'PASSWORD' "
"-i hostsystem,datastore,counters --direct "
"--hostname '<HOST>' --timeout 5 <IP>", ["esxi"], ALL_HOSTS
))

Nuestros Hosts deben llebar un tag identificativo “esxi” en la forma:

all_hosts += [
'esx-0001.midominio.es|esxi|cpd2',
'esx-0002.midominio.es|esxi|cpd2',
'esx-0005.midominio.es|esxi|cpd2',
]

Por último solo será necesario escanear nuestros hosts Esxi desde CMK y reiniciar la configuración para tenerlos controlados. Como siempre con cmk -I host_esxi obtendremos los datos.

cmk_vmware_scan

 

Algunas consideraciones

Monitorización de los datastores: Tendremos que decidir si monitorizamos los datastores a través del vCenter o a través de los servidores ESXi. Parece mucho más lógico monitorizarlos desde el vCenter ya que de esta forma evitamos repetición de alertas para el mismo Datastore configurado en diferentes servidores ESXi pero por otro lado nos perderemos alertas muy concretas de problemas de acceso a los datastores desde hosts concretos…

Otros enlaces de interés.

Puedes bajarte el [wpdm_hotlink id=23] de este artículo así como de otros en la Guía de artículos.

One thought on “Monitorizar servidores vSphere ESXi con Nagios + plugin Check_mk

  1. Sergio

    Gran aporte, pero no consigo hacerlo funcionar.
    Cuando intento probar el plugin me da un error, ¿Cómo hago que importe el certificado del vcenter o de algún host?
    Cannot connect to vSphere Server. Maybe you provided wrong credentials. Please check your connection settings and try again. Error message: SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)’)
    Muchas gracias

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.