Monitorizar Hypervisor VMware ESXi con Zabbix

En la entrada de hoy voy a explicaros como podéis monitorizar un hypervisor VMware ESXi con Zabbix para controlar el uso de CPU, memoria, espacios discos, etc..

Habilitar monitorización VMware en Zabbix

Para que zabbix pueda monitorizar un host ESXi primero tenemos que modificar el fichero de configuración de Zabbix con vuestro editor de texto favorito (en mi caso nano):

nano /etc/zabbix/zabbix_server.conf

Y agregar las siguientes líneas:

StartVMwareCollectors=3
VMwareFrequency=60
VMwarePerfFrequency=60
VMwareCacheSize=32M
VMwareTimeout=120

Guardar los cambios y reiniciar el servicio de Zabbix

systemctl restart zabbix-server

Habilitar Managed Object Browser en el ESXi

A continuación tenemos que habilitar, sino lo tenéis ya, el Managed Object Browser de vuestro ESXi para permitir a Zabbix obtener la información necesaria y obtener nosotros el uuid de nuestro host que más adelante necesitaremos.

Para ello abrimos nuestro navegador de internet favorito y accedemos a vSphere Client de nuestro host ESXi.

Nos situamos en Host-Administrar y a su vez sobre la pestaña Sistema-Configuración avanzada. Aquí seleccionamos Config.HostAgent.plugins.solo.enableMob y pulsamos Editar opción.

Habilitamos la característica Managed Object Browser y pulsamos en Guardar.

Una vez habilitada la característica Managed Object Browser el siguiente paso será obtener el uuid, para ello abrimos una nueva pestaña de nuestro navegador, nos dirigimos a la dirección https://ip_host_esxi/mob/?moid=ha-host&doPath=hardware.systemInfo, nos logamos con nuestras credenciales de acceso y aquí podremos obtener nuestro uuid.

Creación usuario que utilizará Zabbix para la monitorización

Vamos a crear un usuario de solo lectura que será el que usará Zabbix para obtener los datos del ESXi.

Para ello abrimos nuestro navegador de internet favorito y accedemos a vSphere Client de nuestro host ESXi.

Nos situamos en Host-Administrar y a su vez sobre la pestaña Seguridad y usuarios-Usuarios. Aquí creamos un usuario llamado zabbix.

El siguiente paso será asignarle los permisos para ello nos dirigimos a Host y en acciones seleccionamos Permisos.

Pulsamos en Agregar usuario.

Seleccionamos el usuario zabbix que creamos anteriormente, le asignamos permisos de solo lectura y pulsamos el botón Agregar usuario.

Configuración ESXi en Zabbix

El siguiente paso es configurar nuestro ESXi en Zabbix para poder monitorizarlo.

Accedemos a Zabbix, y nos dirigimos a Configuration-Hosts.

En la parte superior derecha pulsamos sobre el botón Create host.

Rellenamos la siguiente información:

  • Host name: Aquí copiamos y pegamos el uuid que obtuvimos en el paso anterior.
  • Visible name: El nombre con el que queramos que se muestre nuestro servidor.
  • Groups: Lo agregaremos a uno de nuestros grupos.
  • Interfaces: Seleccionamos Agent y rellenamos la dirección IP de nuestro host o el nombre DNS en función de nuestra preferencia.

Nos dirigimos a la pestaña Templates y elegimos las plantillas Template Module ICMP Ping y Template VM WMware Hypervisor.

A continuación nos vamos a la pestaña Macros y crearemos las siguientes variables:

  • {$VMWARE.PASSWORD} -> En esta variable pondremos la clave del usuario con acceso al ESXi que creamos en pasos anteriores.
  • {$VMWARE.URL} -> Pondremos la siguiente dirección https://ip_host/sdk
  • {$VMWARE.USERNAME} -> Usuario con acceso al ESXi que creamos anteriormente.
  • {$VMWARE_PERF_INTERVAL} -> Intervalo de actualización de la monitorización de los parámetros de red.

Y listo ya sólo nos quedará esperar unos minutos para empezar a obtener información de nuestro host ESXi de VMware y tenerlo así monitorizado y controlado.

Espero os haya sido de utilidad.

Entradas relacionadas

16 comentarios en «Monitorizar Hypervisor VMware ESXi con Zabbix»

    • Hola Esteban,

      A la hora de configurar el ESXi en Zabbix hay que ponerlo en el campo Host name tal y como explico en la entrada.

      Saludos.

      Responder
  1. Hola Sergio, como estas. Te hago una consulta. Una vez finalizado el proceso de discovery de todo el Vcenter/Vsphere o lo que sea, como se puede hacer para cada una de las VMs encontradas queden configuradas tal como si las hubiera dado de alta manualmente y les hubiera linkeado el template correspondiente al SO? Se puede hacer esto automaticamente o conoces algun proceso por el cual se pueda hacer? Me explico? Saludos y gracias

    Responder
    • Hola Marcelo,

      La única opción que se me ocurre es que cuando Zabbix haga el discover para reconocer las VM que tiene el ESXi y estas te aparezcan en Zabbix hagas una modificación masiva en Zabbix para añadirle la plantilla que necesites.

      Saludos.

      Responder
  2. Buen dia
    Tengo unos VMWare Esxi 6.5.0 hice todo el proceso que indicaste pero nada, no me refleja nada, también intente hacerlo por SNMP pero tampoco solo me indica el problema de que no tiene conexión al VMWare, ya no se que mas hacer. Alguna idea de que me hará falta

    Responder
    • Hola Alejandra,

      ¿Has comprobado que no tengas ningún Firewall perimetral o algo que pueda estar cortando la conexión entre el ESXi y el servidor de Zabbix?.

      Saludos.

      Responder
    • Hola Ricardo,

      Debes especificar el puerto por el que escuche el servidor de Zabbix que sino lo has cambiado por defecto es el puerto 10050.

      Saludos.

      Responder
  3. hola, ha realizado todo, pero no me muestra nada de las vms, solo consumo de red, alertas del servidor fisico, CPU y ram, pero nada de las VMs, tengo Zabbix 4.4.10, que podra ser?

    Responder
    • Hola Daniel,

      El tutorial está hecho sobre la versión 5 de Zabbix, me temo que el problema es que la plantilla de monitorización de la versión 4 incluye menos funcionalidad que la que incluye la versión 5.
      Como alternativa se me ocurre, sino puedes actualizar la versión de Zabbix, es que instales los agentes en cada una de las VMs para así obtener la información de cada una de ellas.

      Responder
  4. Buenas, dejo aqui por si a alguien le ayuda.
    Con zabbix 6.2 tuve que colocar ademas la siguiente macro

    {$VMWARE.HV.UUID} = uuid

    De lo contrario no me lo detectaba o me tiraba un erro «Unknow uuid»

    Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.