Plugin de Nagios con PowerShell (Parte 1): Creación del script
Si bien Nagios dispone de un extenso catálogo público de plugins creados por la comunidad, es posible que tengamos necesidades específicas que no estén cubiertas en dicho catálogo. Es por eso que en esta mini serie de entradas vamos a ver cómo crear nuestro propio plugin de Nagios con Powershell y cómo configurarlo posteriormente en la máquina destino con la ayuda del cliente NSClient++.
- Parte 1: Creación del script.
- Parte 2: Instalación de NSClient++.
Códigos de retorno de un plugin de Nagios
Si nos dirigimos a la guía de desarrollo de plugins de Nagios nos encontramos con que los posibles códigos de retorno de un plugin de Nagios son los siguientes:
- OK (0): Se ha podido realizar el check y el servicio funciona correctamente.
- Warning (1): Se ha podido realizar el check pero el servicio está por encima de un valor de alarma o no está funcionando correctamente.
- Critical (2): El plugin ha detectado que o el servicio no estaba corriendo o estaba por encima de un valor crítico.
- Unknown (3): Se han proporcionado argumentos inválidos al plugin o hay fallos a bajo nivel en el mismo.
Sabiendo los tipos de retorno disponibles para nuestro plugin y su correspondiente valor numérico a devolver (entre paréntesis en la lista anterior) ya podemos empezar a darle forma al script con el que crearemos nuestro primer plugin de Nagios con PowerShell.
Diseño del plugin de Nagios con PowerShell
Para la realización de nuestro plugin de prueba crearemos un script que monitorizará el servicio de “Cola de impresión” de Windows (spooler).
Lo primero que necesitaremos saber será qué campo del servicio queremos consultar:
Como podemos ver en la captura anterior la propiedad “Status” nos indica que el servicio está corriendo (estado “Running”).
Para este plugin de ejemplo podemos determinar los siguientes dos estados: · OK (0): El servicio está corriendo (running). · Critical (2): El servicio está en cualquier otro estado (parado, arrancando, parando…).
Creación del script
Ahora que sabemos lo que tenemos que devolverle a Nagios podemos ponernos a picar código. El resultado final debería ser algo así:
|
|
Es importante devolver siempre, a parte del estado mencionado anteriormente, el texto que mostrará Nagios en su panel de control (En este caso mediante Write-Host en las líneas 7 y 12 del script).
Conclusión
Y hasta aquí esta primera parte de la mini serie de entradas sobre la creación de un plugin de Nagios con PowerShell. En la próxima entrada veremos cómo instalar y configurar Nagios y NSClient++ para ejecutar nuestro plugin de prueba.