Configurando acciones correctivas en Centreon
Otra de las grandes ventajas de disponer de nuestra plataforma monitorizada es que podemos aprovechar y generar nuestros propios scripts para realizar acciones correctivas en nuestro entorno. Algo que se ejecute en la máquina remota cuando tengamos un problema, por ejemplo si nos quedamos sin espacio en Disco, pues un script que libere temporales, o el ejemplo que haremos en este documento; cuando Nagios o Centreon detecte que tenemos el Servicio DNS del Servidor DNS caído, pues que lo inicie 🙂 Ideal para cualquier necesidad que tengamos, problemas repetitivos que podamos automatizar su solución…
Para esto, usaremos los Event Handler o desencadenadores de eventos que podremos configurar sencillamente en cada Host o Servicio de Centreon, cada vez que el servicio monitorizado cambie de estado, ejecutará el Comando que definamos. Como os digo, en este documento usaré un Servicio ya definido en Centreon que monitoriza el servicio de Windows ‘Servidor DNS’ si está activo o no; si queréis info de cómo monitorizar servicios aquí. Bueno, a parte de chequearlo, lo que haremos será configurar que cuando el Servicio cante como CRITICAL pues que ejecute un archivo .BAT en el servidor DNS para que levante dicho servicio, sí?
Para la ejecución remota de scripts, si estáis siguiendo esta serie de documentos sobre Nagios, estoy usando NRPE, por tanto en el servidor DNS tendrá instalado y configurado el agente NSClient++, si necesitas repasarlo, lo tienes aquí.
Lo que tendríamos que tener por ejemplo será un fichero batch que en este caso reiniciará el servicio del DNS, el fichero ‘reinicia_servicios_dns.cmd’ lo dejo como siempre en la carpeta scripts y su contenido en este ejemplo será:
[sourcecode]net stop "Servidor DNS"
net start "Servidor DNS"[/sourcecode]
Y como siempre, en el fichero de configuración de NSClient++ ‘nsclient.ini’, daremos de alta tanto el Alias como lo que debería ejecutar cuando se llame a ese Alias desde una máquina remota, como será desde nuestro Nagios o Centreon, algo así deberíamos añadir:
[sourcecode][/settings/external scripts/scripts]
reinicia_dns = cmd /c scripts\\reinicia_dns.cmd
[/settings/external scripts/alias]
reinicia_dns = reinicia_dns[/sourcecode]
Como siempre, grabamos el fichero y reiniciamos el Servicio NSClient++ para que surjan efecto los cambios anteriores.
Y nada, ya sólo nos queda ir al Servicio al que le queramos añadir la acción correctiva, en este caso os recuerdo que era el servicio que monitorizaba si el Servicio DNS está activo o no; por tanto, cuando cambie su estado, procederemos a ejecutar un script que reiniciará dicho servicio con el fin de atajar e intentar corregir un posible fallo importante en mi organización. Desde Centreon, buscamos nuestro Servicio desde “Configuration” > “Services”, y lo editamos, desde la pestaña “Data Processing”, habilitaremos ‘Event Handler Enabled’, seleccionaremos en este caso el Comando ‘check_nrpe’ que se ejecutará como ‘Event Handler’, y si tenemos que pasar argumentos lo haremos separados de una ! (exclamación), en mi caso sabemos que si pasamos el argumento ‘!reinicia_dns’ que era el Alias del INI, pues conseguiremos lo que queremos, que ejecute ese script de forma remota! Grabamos con “Save” y como siempre exportamos los datos y reiniciamos el engine de Nagios o Centreon para recargar la configuración, bueno, espero os haya sido interesante!