Desarrollo del nuevo check
Es importante respetar los códigos de salida y la sintáxis de nagios par que nuesrto nuevo chequeo pueda ser visualizado correctamente desde nagios.
En el caso de estar usando también pnp4nagios, o cualquier otro addon capaz de hacer una gráfica , hay que respetar también la sintáxis de performance data.
Para definir los argumentos de entrada a un powershell, en el comienzo del script se define su nombre, posición y si es necesario:
[CmdletBinding()] Param( [Parameter(Mandatory=$True,Position=1)] [string]$ApplicationPool )
Para definir el código de salida, se ha usado definición de variables:
Set-Variable OK 0 -option Constant Set-Variable WARNING 1 -option Constant Set-Variable CRITICAL 2 -option Constant Set-Variable UNKNOWN 3 -option Constant (...) exit $CRITICAL
En mi caso, he desarrollado un plugin para poder conocer el estado de un pool de aplicaciones en un servidor IIS. El código completo está aquí.
Publicarlo a través de NSClient++
Con nuestro nuevo script escrito y funcionando, es momento de configurar nsclient++ para poder acceder desde nuestro nagios.
En primer lugar, en la carpeta de scripts C:\Program Files\NSClient++\scripts copiamos nuestro nuevo check con extensión ps1.
El funcionamiento de NSClient++ para los external scripts, hace que todos ellos se invoquen a través del cmd de windows. Por lo tanto, debemos especificar en la linea, que es powershell quien debe ejecutar nuestro nuevo check.
[/settings/external scripts/scripts] check_default_app_pool = powershell.exe scripts\check_iis8_app_pool_state.ps1 DefaultAppPool
Instalación de NSCLient++.