Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introducción

Con Checkmk puedes monitorizar host ESXi y también sus máquinas virtuales. Así, por ejemplo, en un host es posible consultar Disk-IO, el rendimiento del almacén de datos, el estado de las interfaces físicas de red, diversos sensores de hardware y mucho más. Checkmk también ofrece una serie de check plugin para las VM, cuya lista completa se encuentra en elCatálogo de check plugin.

Mediante el mecanismo piggyback, los datos de la máquina virtual se muestran directamente en su host asociado, de modo que los datos relacionados con la máquina virtual se encuentran justo donde se necesitan y pueden compararse con los que informa el sistema operativo de la máquina virtual:

vmware services

El acceso a estos datos se consigue a través de la vSphere-API basada en HTTP, no a través de los agentes normales o SNMP. Esto significa que no es necesario instalar ningún agente ni ningún otro software en los host ESXi, y que el acceso es muy sencillo de configurar.

2. Puesta en marcha

2.1. Configuración a través del sistema host ESXi

La configuración inicial para la monitorización de un servidor ESXi es muy sencilla y puede realizarse en menos de cinco minutos. Sin embargo, antes de que puedas configurar el acceso, deben cumplirse los siguientes requisitos previos:

  • Debes haber definido un usuario en el servidor ESXi. Basta con que este usuario sólo tenga acceso de lectura.

  • Debes haber definido el servidor ESXi como host en Checkmk y configurado como agente (Checkmk Agent). Consejo: Selecciona el nombre del host de modo que sea el mismo que conoce el propio servidor.

Una vez satisfechos los requisitos previos, puedes crear una regla en el conjunto de reglasSetup > VM, cloud, container > VMware ESX via vSphere. Ésta se asignará al host definido, de modo que en lugar del agente estándar se utilizará el agente especialpara recuperar los datos de la monitorización de VMware.

Introduce el nombre del usuario y la contraseña tal y como se han definido en el servidor ESXi. La condición de la regla debe establecerse en el host definido en Checkmk. Después de esto, la primera instalación se habrá completado y Checkmk podrá recuperar los datos del servidor.

vmware username

Por último, vuelve a la configuración del host y ejecuta undescubrimiento de servicios. Esto debería encontrar una serie de servicios:

vmware discovery

Activa cambios como de costumbre. Si no se ha identificado ningún servicio, puedes buscar errores en la configuración con las opciones de Diagnóstico, como se describe más adelante en este artículo.

2.2. Configuración mediante vCenter

Si dispones de un vCenter, en lugar de recuperar los datos de monitorización a través de los sistemas host individuales, también puedes llamar al vCenter. Este método tiene varias ventajas e inconvenientes:

Ventajas Desventajas

Aplicación sencilla en situaciones en las que las máquinas virtuales se asignan dinámicamente mediante vMotion.

No hay monitorización si el vCenter no está disponible.

Es posible la monitorización de la carga total de RAM de un clúster.

No hay monitorización de datos específicos del hardware de los nodos del clúster (por ejemplo, discos RAM y tarjetas de red).

También se puede utilizar una combinación de ambos métodos: así tendrás lo mejor de los dos mundos.

Configurar el vCenter

Para esta configuración se aplican requisitos previos similares a los de la configuración sobre un único servidor ESXi:

  • En el vCenter debe haber un usuario con acceso de lectura.

  • El vCenter debe estar definido como host y configurado como agente Checkmk Agent en Checkmk.

  • Si los ESXi-Servers ya se han configurado en Checkmk y deseas combinar la monitorización, entonces en vCenter sus nombres serán los mismos que están configurados como host en Checkmk

Como se ha descrito anteriormente, crea una regla para el agente especial de la monitorización de VMware, en Type of Query selecciona el vCenter y establece la condición en el host correspondiente, tal y como se ha definido en Checkmk:

vmware vcenter username

Con esto se habrá completado la configuración. Ejecuta un descubrimiento de servicios para el host del vCenter como se ha descrito anteriormente.

Recuperación de host ESXi y vCenter

Para evitar la duplicación de la recuperación de datos al utilizar una combinación de ambos métodos de configuración, se puede configurar la regla del vCenter para que sólo recupere datos específicos. Una posibilidad es acceder al Datastores y al Virtual Machines a través del vCenter, y a los otros datos directamente desde los ESXi-hosts. La carga de licencias puede obtenerse en ambas configuraciones, ya que el vCenter informa del estado general.

vmware data1

Si ya has configurado los ESXi-hosts, sus reglas se adaptarán en consecuencia. Aquí sólo se puede acceder a Host Systems y Performance Counters, ya que pertenecen inalterablemente a un servidor ESXi concreto. El estado de la licencia sólo es aplicable al servidor ESXi recuperado.

vmware data2

2.3. Monitorización de las máquinas virtuales

Por defecto, sólo se crea el estado de las máquinas virtuales como servicios y se asigna al ESXi o al vCenter respectivamente. Sin embargo, hay aún más información disponible de estas VM: de la RAM, o de las instantáneas, por ejemplo. Estos datos se almacenan como datos piggyback y se asignan directamente a los host que corresponden a las VM en Checkmk.

Para que estos datos sean visibles, la máquina virtual debe estar definida como host en Checkmk. Por supuesto, puedes instalar el agente Checkmk en la VM y aprovechar todas sus funciones. Los datos piggyback simplemente se añadirán a los ya disponibles.

Nombrar los datos piggyback

Si el nombre del host de la VM en Checkmk coincide con el nombre de la VM, la asignación funciona automáticamente. Si no, hay varias opciones en Checkmk para personalizar el nombre del piggyback. Las siguientes opciones están disponibles en la propia regla de configuración:

  • Puedes utilizar el nombre del host del sistema operativo de la VM, si se puede acceder a él a través de la vSphere-API.

  • Si el nombre de la máquina virtual incluye caracteres en blanco, el nombre se truncará después del primer espacio en blanco. Como alternativa, los espacios en blanco pueden sustituirse por guiones bajos.

vmware nametranslation

Si el nombre del host es muy diferente en Checkmk, se puede realizar una asignación explícita con ayuda de la regla Setup > Agents > Access to agents > Hostname translation for piggybacked hosts.

vmware nametranslation2

Si el host está configurado en Checkmk y los nombres coinciden, puedes activar la cajaDisplay VM power state on en la regla de configuración: selecciona si los datos deben estar disponibles y dónde. Selecciona aquí The Virtual Machine.

vmware vms

Con un descubrimiento de servicios en el host o hosts, ahora se identificarán los nuevos servicios y se podrán activar. Ten en cuenta que la información de los servicios puede diferir entre sí. El servidor ESXi verá la carga de RAM de una máquina virtual de forma diferente a como la informa el propio sistema operativo de la máquina.

vmware services

3. Opciones de diagnóstico

3.1. Introducción

Cuando se busca el origen de un error, hay varios "puertos de llamada". Dado que los datos proceden del servidor ESXi-/vCenter, éste es un lugar lógico para empezar a buscar el error. Después, es importante que los datos lleguen al servidor Checkmk y puedan procesarse y mostrarse correctamente.

3.2. Problemas con la configuración de un servidor ESXi/vCenter

Con el comando curl puedes comprobar si el servidor es accesible desde la monitorización:

OMD[mysite]:~$ curl -Ik https://myESXhost.my-domain.net
HTTP/1.1 200 OK
Date: Fri, 4 Nov 2016 14:29:31 GMT
Connection: Keep-Alive
Content-Type: text/html
X-Frame-Options: DENY
Content-Length: 5426

Si los datos de acceso se han introducido correctamente - y si Checkmk puede acceder al host - se puede comprobar en la consola con el agente especial. Utiliza la opción --help o -h para obtener una lista completa de las opciones disponibles. En el ejemplo, con la ayuda de grep la salida se limitaba a una sección concreta y a las cuatro primeras líneas que la seguían - puedes omitirla para recibir una salida completa, o filtrar por otra:

OMD[mysite]:~$ share/check_mk/agents/special/agent_vsphere --debug --user myesxuser --secret myesxpassword -D myESXhost | grep -A4 esx_vsphere_objects
<<<esx_vsphere_objects:sep(9)>>>
hostsystem      myESXhost           poweredOn
hostsystem      myESXhost2          poweredOn
virtualmachine  myVM123             myESXhost   poweredOn
virtualmachine  myVM126             myESXhost   poweredOn

En la consola se puede comprobar si Checkmk puede acceder al host. Aquí la salida también se limita a cinco líneas:

OMD[mysite]:~$ cmk -d myESXhost | grep -A4 esx_vsphere_objects
<<<esx_vsphere_objects:sep(9)>>>
hostsystem      myESXhost           poweredOn
hostsystem      myESXhost2          poweredOn
virtualmachine  myVM123             myESXhost   poweredOn
virtualmachine  myVM126             myESXhost   poweredOn

Alternativamente, puedes realizar la prueba en la página de diagnóstico del host en la Configuración:

vmware agent test

Si todo funciona hasta este punto, la salida debería haberse guardado en un directorio temporal. Si se ha producido dicho archivo, y si el contenido es correcto, puede determinarse con lo siguiente:

OMD[mysite]:~$ ll tmp/check_mk/cache/myESXhost
-rw-r--r-- 1 mysite mysite 17703 Nov  4 15:42 myESXhost
OMD[mysite]:~$ head -n5 tmp/check_mk/cache/myESXhost
<<<esx_systeminfo>>>
Version: 6.0
AgentOS: VMware ESXi
<<<esx_systeminfo>>>
vendor VMware, Inc.

3.3. Problemas con los datos piggyback

Checkmk crea un directorio que contiene un archivo de texto para cada host. En este archivo de texto se pueden encontrar los datos que se van a asignar a los host.

OMD[mysite]:~$ ll tmp/check_mk/piggyback/
total 0
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myVM123/
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myVM124/
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myVM126/
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myESXhost2/
OMD[mysite]:~$ ll tmp/check_mk/piggyback/myVM123/
-rw-r--r-- 1 mysite mysite 1050 Nov  4 15:51 myESXhost

Si estos directorios o archivos están ausentes, es que no han sido creados por los agentes especiales. Si se da esta situación, mira en la regla de configuración del host ESXi-/vCenter para ver si se ha activado larecuperación de datos.

OMD[mysite]:~$ grep "<<<<myVM123>>>>" tmp/check_mk/cache/myESXhost
<<<<myVM123>>>>

En el caso de un número muy grande de directorios de este tipo para datos piggyback puede ser muy difícil encontrar los que no tienen asignación a un host. Aquí proporcionamos un script con el que se pueden encontrar fácilmente los host piggyback no asignados:

OMD[mysite]:~$ share/doc/check_mk/treasures/find_piggy_orphans
myESXhost2

De la salida del script puede deducirse que Checkmk no encuentra un host con el mismo nombre al que pueda asignar los datos. Sin embargo, los nombres piggyback pueden modificarsede varias formas.

4. Archivos y directorios

Archivo Ruta Función

~/tmp/check_mk/piggyback/

Checkmk guarda aquí los datos piggyback. Para cada host se crea una subcarpeta con el nombre del host - esta subcarpeta contiene un archivo de texto con los datos del host. El nombre del archivo es el nombre del host que proporciona los datos.

~/tmp/check_mk/cache/

Aquí se guarda temporalmente la última salida del agente de todos los host. El contenido del archivo de un host es idéntico al del comando cmk -d myhost.

~/share/check_mk/agents/special/agent_vsphere

El agente especial para ejecutar una consulta de servidores ESXi y vCenter. Este script también puede ejecutarse manualmente con fines de prueba.

~/share/doc/check_mk/treasures/find_piggy_orphans

Un script para encontrar datos piggyback que no están asignados a un host.

En esta página