Automatizar servicios Windows en Zabbix

En mi obsesión de intentar automatizar todo, para evitar trabajo innecesario me he puesto a investigar como automatizar los servicios de Windows cuando están parados en Zabbix y eso mismo lo voy a explicar en esta entrada.

He realizado este procedimiento con Zabbix server 4.4.2, y os debería funcionar a partir de la versión 4.x.

Es importante recordar los siguientes requisitos:

Tener el agente de Zabbix instalado y funcionando.

Tener en la configuración de cada host dentro de Zabbix Agent el parámetro de remote command= 1

Tener añadido el servidor host en Zabbix Server.

Tener la plantilla Template OS Windows, que es la de por defecto que viene en Zabbix Server.

Una vez que tenemos los requisitos indicados anteriormente, vamos a por ello.

En el Dashboard de Zabbix Server, hacemos clic en Configuration –> Templates –> Template OS Windows.

En Template OS Windows hacemos clic en Discovery rules –> Windows Service Discovery

En la pantalla de Discovery Rules hacemos clic en Trigger prototypes –>Service «{#SERVICE.NAME}» ({#SERVICE.DISPLAYNAME}) is not running (startup type {#SERVICE.STARTUPNAME}) Trigger {#SERVICE.STARTUPTRIGGER} –> Tags.

Recomiendo cambiar el nombre del trigger prototypes, para evitar que se lance el comando hacia otros servicios no Windows:  Service Windows «{#SERVICE.NAME}» ({#SERVICE.DISPLAYNAME}) is not running (startup type {#SERVICE.STARTUPNAME}) Trigger {#SERVICE.STARTUPTRIGGER} –> Tags

Añadimos un tag con el nombre {#SERVICE.NAME} y hacemos update

Esta pantalla puede variar dependiendo de la versión de Zabbix.

En el Dashboard de Zabbix Server hacemos clic en Configuration –> Actions

Escribimos un nombre para la acción y añadimos una nueva condición que sea un Trigger name contains Service Windows.

En la ventana de Actions hacemos clic en Operations.

En Default operation step duration: añadimos 1m

En Operation type: seleccionamos remote command

En Target List: seleccionamos current host

En Commands: añadimos C:\Windows\System32\net start {EVENT.TAGS}

Ahora nos falta el difícil paso de guardar.

Ahora cualquier servicio que se quede en estado parado y salte la alerta Zabbix Server, automáticamente mandara el comando de levantar el servicio.

ACTUALIZACIÓN:
Según nos ha comentado un seguidor del blog le ocurrió el siguiente error:

Al seguir este tutorial con la versión de Zabbix 5.0.1 le apareció el mensaje de «Unsupported item key» y parece ser que es un problema de la entrada «DenyKey=system.run[*]» del agente de Windows que viene por defecto activada y si la comentamos con #  permite hacer funcionar correctamente el Remote Command.