Cómo monitorizar los recursos básicos: espacio usado en datastores, número de máquinas virtuales, número de alarmas, número de máquinas virtuales sin las VMware Tools instaladas, uso de CPU, uso de RAM, etc, en un servidor hipervisor de virtualización VMware ESXi 6.7 o en un clúster VMware vCenter. Para obtener los datos usaremos VMware PowerCLI y como sistema de monitorización usaremos Pandora FMS 7.0.

Requisitos para monitorizar servidor host VMware ESXi con PowerCLI

La monitorización la realizaremos desde un equipo con sistema operativo Windows 10, Windows 11 o bien Windows Server 2016, 2019 o 2022. A continuación detallamos los requisitos para monitorizar uno o varios hosts ESXi y un vCenter Server.

Disponer de uno o varios hipervisores VMware ESXi o también disponer de un clúster VMware vCenter Server

Necesitaremos, como es evidente, uno o varios host ESXi o bien, un clúster vCenter Server. En el siguiente artículo explicamos cómo montar un clúster vCenter Server desde cero:

Se puede dar el caso de tener únicamente un host ESXi o bien de tener varios pero no en clúster.

En este artículo explicaremos cómo monitorizar ambos casos: vCenter Server y host ESXi.

Equipo con Windows 10, 11 o Windows Server 2016, 2019, 2022 con las PowerCLI

Si disponemos de un clúster VMware vCenter Server sobre Windows Server, podríamos usar este mismo servidor para la monitorización. En cambio, si disponemos de un vCenter Server sobre Linux, seguiremos los pasos de este tutorial para usar cualquier equipo Windows de la red (que tenga acceso al vCenter Server) para monitorizarlo «en remoto».

A su vez, si únicamente queremos monitorizar un host ESXi (o varios sin clúster), el proceso será el mismo que para un vCenter Server, solo variará el script a ejecutar. Todo esto lo explicamos más adelante.

En dicho equipo Windows necesitaremos instalar las VMware PowerCLI. En el siguiente artículo explicamos cómo instalarlas y cómo acceder a un entorno de virtualización VMware vCenter Server (mismo método para acceder a un único host ESXi):

Usuario con permisos de lectura en los host VMware ESXi y en el vCenter Server

Necesitaremos disponer también de un usuario y contraseña de acceso a los hosts ESXi (o al clúster vCenter Server). Utilizaremos este usuario al llamar a los scripts que realizarán la conexión y obtendrán la información.

Para cada host ESXi, tanto si tenemos vCenter Server como si no, podremos crear el usuario como indicamos en el siguiente artículo:

En principio, este usuario, no necesita permisos especiales, únicamente permisos de solo lectura:

Usuario con permisos de lectura en los host VMware ESXi y en el vCenter Server

En el caso de un vCenter Server, crearemos el usuario para la monitorización con Pandora FMS, desde «Administración» – Single Sign On» – «Usuarios y grupos»:

Usuario con permisos de lectura en los host VMware ESXi y en el vCenter Server

Estableceremos el permiso de «Solo lectura» para este usuario, para todo el Datacenter, pulsando con el botón derecho sobre el «Datacenter» y eligiendo «Agregar permiso…»:

Usuario con permisos de lectura en los host VMware ESXi y en el vCenter Server

Elegiremos el usuario «pandora» creado anteriormente, y en Función, elegiremos «Solo lectura». Marcaremos el check «Propagar a objetos secundarios»:

Usuario con permisos de lectura en los host VMware ESXi y en el vCenter Server

De esta forma, tendremos un usuario en el vCenter Server con permisos para leer los datos que necesitaremos más adelante (datastores, máquinas virtuales, CPU, RAM, etc.).

Servidor con Pandora FMS Server

Dispondremos de un servidor con Pandora FMS Server. En el siguiente artículo explicamos cómo montar un servidor de monitorización con Pandora FMS:

Datos de ejemplo que se usarán en el entorno de pruebas

Para este ejemplo, dispondremos de los siguientes equipos:

  • Un equipo cliente con Windows 10 y las PowerCLI instaladas, con visibilidad de la red del vCenter y los host ESXi.
  • Un servidor con Pandora FMS Server, con IP 192.168.1.200.
  • Un servidor hipervisor ESXi con IP 192.168.1.10.
  • Un segundo servidor hipervisor ESXi con IP 192.168.1.11.
  • Un VMware vCenter Server, clúster formado por los dos servidores anteriores, con IP 192.168.1.45.

Instalar agente de Pandora FMS en equipo Windows

En el equipo que usemos para obtener los datos del VMware vCenter o del host ESXi, en el que hayamos instalado las PowerCLI, instalaremos también el agente de Pandora FMS. Es bastante sencillo, descargaremos la última versión para Windows de la web oficial de Pandora FMS, a la fecha de este artículo, el fichero Pandora FMS Windows Agent v7.0NG.772.1_x86_64.exe:

Instalar agente de Pandora FMS en equipo Windows

Seguiremos los pasos del asistente de instalación de Pandora FMS Agent:

Instalar agente de Pandora FMS en equipo Windows

Indicaremos la dirección IP del servidor con Pandora FMS Server (podemos modificarla tras la instalación, en el fichero pandora_agent.conf):

Instalar agente de Pandora FMS en equipo Windows

No marcaremos la opción «Habilitar configuración remota». Esta opción está solo disponible para Pandora FMS Enterprise:

Instalar agente de Pandora FMS en equipo Windows

Desmarcaremos la opción «Ejecutar Pandora FMS Agent 7.0NG.772.1», dado que, de momento, no ejecutaremos el agente (hasta haber configurado todos los módulos, como explicaremos en los siguientes puntos del artículo).

Instalar agente de Pandora FMS en equipo Windows

Crear script PowerCLI para obtener datos del host ESXi o de todos los hosts ESXi de un VMware vCenter Server

A continuación, mostramos el contenido de los dos ficheros de scripts .ps (PowerShell de VMware), que usaremos para obtener los datos del ESXi o del vCenter Server (de todos sus ESXi). Estos scripts mostrarán una salida por pantalla con el formato correcto para envío al servidor de Pandora FMS de cada módulo (Carga_CPU, Memoria_RAM_Usada, Espacio_Usado_DS_XXXX, Numero_Alarmas, Numero_MV_VMwareTools_OLD, Numero_Alarmas_vCenter, etc.). En realidad, se puede obtener casi cualquier dato que se quiera monitorizar.

En primer lugar, en la carpeta del agente de Pandora FMS (instalado en el punto anterior), crearemos un fichero con el nombre datos_host.ps1, este fichero será el encargado de obtener los datos a monitorizar de un host ESXi concreto. Tendrá el siguiente contenido:

En cambio, si tenemos un VMware vCenter Server (con un clúster de hosts ESXi), crearemos un segundo fichero, también en la carpeta del agente de Pandora FMS, con el nombre datos_vcenter_ds.ps1, encargado de obtener los datos del vCenter Server (datastores, número de máquinas con VMware Tools obsoletas, memoria RAM total usada de todos los hipervisores del clúster, uso de CPU global, número de alarmas lanzadas en el vCenter, número de máquinas virtuales sin las VMware Tools instaladas, etc. El contenido de este fichero será:

La carpeta del agente de Pandora FMS, habitualmente, suele estar en:

C:\Program Files\pandora_agent

Es muy recomendable realizar una prueba de ejecución de los dos scripts anteriores, antes de agregar el módulo al agente de Pandora FMS (como explicaremos a continuación). Para probar estos scripts, abriremos una ventana de MS-DOS (Símbolo de sistema) y ejecutaremos:

El comando anterior, ejecutará el script datos_vcenter.ps1, y obtendrá los datos del clúster vCenter Server y de cada uno de sus hipervisores ESXi y datastores, con IP 192.168.1.45, obteniendo (con el formato correcto para envío a Pandora FMS de cada módulo):

Como podemos observar en la salida anterior, el script habrá obtenido la información del vCenter y de todos sus datastores e hipervisores ESXi, y la devuelve con el formato tentacle de Pandora FMS, preparado para enviarlo a través del agente al servidor Pandora FMS.

Probaremos también el fichero de script PowerShell para extraer datos de cada host ESXi de forma individual:

El comando anterior, ejecutará el script datos_host.ps1, y obtendrá los datos del servidor hipervisor ESXi con IP 192.168.1.10, obteniendo:

Repetiremos el proceso para el host ESX2, con IP 192.168.1.11. En cada caso, probaremos el script para todos los ESXi, verificando que se ejecuta correctamente.

Cuando consigamos que los dos scripts conecten con el vCenter y los ESXi y obtengan los datos, estaremos preparados para enviarlos al sevidor de Pandora FMS, como indicamos a continuación.

Agregar módulos en agentes de Pandora FMS para que obtengan los datos del VMware vCenter Server y hosts ESXi

Accederemos a la carpeta de instalación del angente de Pandora FMS, habitualmente en:

C:\Program Files\pandora_agent

En la carpeta anterior, tendremos los dos ficheros datos_host.ps1 y datos_vcenter_ds.ps1, creados anteriormente.

Editaremos el fichero pandora_agent.conf, con el Bloc de notas o cualquier otro editor de ficheros de texto plano (sin formato). Añadiremos una línea de broker_agent por cada ESX que tengamos y una más para el vCenter, por ejemplo:

Con el parámetro broker_agent, se creará un agente (un dispositivo o servidor) en Pandora FMS Server, como si se tratara de un dispositivo más. Se creará desde el equipo con el agente donde hayamos añadido los broker_agent:

Agregar módulos en agentes de Pandora FMS para que obtengan los datos del VMware vCenter Server y hosts ESXi

Guardaremos los cambios en el fichero anterior y cerraremos su edición.

Crearemos un fichero .conf por cada broker_agent creado, respetando el nombre. Para nuestro caso: ESX1.conf, ESX2.conf y vcenter.conf. Añadiremos estos ficheros en la misma carpeta que el resto de ficheros.

Empezaremos creando el fichero vcenter.conf, para que cree el agente «vcenter» con los datos que indicamos a continuación (contenido del fichero vcenter.conf):

Agregar módulos en agentes de Pandora FMS para que obtengan los datos del VMware vCenter Server y hosts ESXi

La línea final del fichero será la encargada de ejecutar el script PowerCLI, conectar con el vCenter y obtener sus datos.

De la misma forma, crearemos el fichero ESX1.conf, con el siguiente contenido:

Con la última línea del fichero anterior, Pandora Agent ejecutará el script cada 5 minutos (o el intervalo que se haya indicado), obtendrá los datos del host ESXi y los enviará a Pandora Server.

Repetiremos el proceso y crearemos el fichero ESX2.conf, con el mismo contenido, cambiando el nombre del agente por ESX2, la IP del host y la IP del script por la del ESX en cuestión (192.168.1.11):

En este ejemplo, obtenemos los datos de un clúster vCenter Server y también obtenemos la información de dos hosts hipervisores ESXi, con IP 192.168.1.10 y 192.168.1.11. Si tenemos más host ESXi, crearemos un fichero .conf para cada uno de ellos.

Para aplicar los cambios, reiniciaremos el servicio de Pandora Agent. Podemos hacerlo ejecutando el script restar_pandora_agent.bat ubicado en la carpeta «scripsts» del agente de Pandora:

Agregar módulos en agentes de Pandora FMS para que obtengan los datos del VMware vCenter Server y hosts ESXi

Visualizar los datos obtenidos en Pandora FMS Server

Transcurridos unos minutos, podremos consultar los datos obtenidos por el agente sobre el vCenter y los host de virtualización ESXi. Nos aparecerán, como agentes, todos los ESXi (en nuestro caso ESX1, ESX2) y el vCenter (vcenter). Y tendremos todos los módulos (sensores, sondas, monitores) sobre cada uno de ellos.

Por ejemplo, para el agente ESX1:

Visualizar los datos obtenidos en Pandora FMS Server

Tendremos los módulos:

  • Carga_CPU: porcentaje de carga actual de CPU de este ESXi.
  • Espacio_Usado_DS_nombre_datastore: porcentaje de espacio usado en cada datastore (tanto locales como en SAN). Se creará un módulo por cada datastore del ESXi.
  • Memoria_RAM_Usada: porcentaje de memoria RAM usada de este ESXi.
  • Numero_Alarmas: número de alarmas lanzadas en el ESXi.
  • Numero_MV: número de máquinas virtuales que sirve el ESXi.
  • Numero_MV_VMwareTools_No_Instaladas: número de máquinas virtuales con sin las VMware Tools instaladas.
  • Numero_MV_VMwareTools_OLD: número de máquinas virtuales con una versión obsoleta de las VMware Tools.
Visualizar los datos obtenidos en Pandora FMS Server

Para el VCenter Server, se obtendrán los siguientes módulos (sensores, sondas, monitores):

  • Carga_CPU: porcentaje de carga actual de CPU de todo el Datacenter.
  • Espacio_Usado_DS_nombre_datastore: porcentaje de espacio usado en cada datastore (tanto locales de cada ESXi como en SAN). Se creará un módulo por cada datastore del vCenter.
  • Memoria_RAM_Usada: porcentaje de memoria RAM usada de todo el Datacenter.
  • Numero_Alarmas: número de alarmas lanzadas en el vCenter.
  • Numero_MV: número de máquinas virtuales totales de todo el Datacenter.
  • Numero_MV_VMwareTools_No_Instaladas: número de máquinas virtuales con sin las VMware Tools instaladas en el vCenter.
  • Numero_MV_VMwareTools_OLD: número de máquinas virtuales con una versión obsoleta de las VMware Tools en el vCenter.
Visualizar los datos obtenidos en Pandora FMS Server

En algunos de los módulos (sensores, sondas), mediante los scripts, se han añadido umbrales para que pasen a estado de alerta o crítico. Por supuesto, se pueden modificar estos umbrales y añadir otros a los que no los tienen. Ajustaremos los umbrales a las necesidades de la organización.

Visualizar los datos obtenidos en Pandora FMS Server

Una vez configurados los umbrales, podremos agregar las alarmas que consideremos. Por ejemplo, que nos avise con un correo electrónico si el consumo de CPU de un host es superior al 90%.

Visualizar los datos obtenidos en Pandora FMS Server