En Windows el cliente que usamos para Nagios es el NSClient++, un híbrido de los clásicos NRPE y nsclient. Éste usa el protocolo de comunicación de NRPE, pero a la vez incluye librerías de tests en DLLs como las que usaba nsclient. Eso permite que los tests básicos de CPU, memoria, disco y otros ya vean incluídos y no haga falta añadir de base scripts de test en VBS,…

Para instalarlo en una nueva máquina:

  • Copiaremos el software a C:WindowsSystem32nsclient. Nota: se puso esta ubicación por ponerlo en un sitio del sistema operativo, y se debe procurar mantenerlo para que siempre esté en el mismo sitio en todas las máquinas como estándar.
  • Entramos en linea de comandos y nos ubicamos en el directorio C:WindowsSystem32nsclient.
  • Registraremos el programa como servicio ejecutando NSclient++ /install
  • Arrancaremos el cliente a través de Herramientas Administrativas > Servicios o bien ejecutando en la linea de comandos net start nsclientpp.
  • Podemos comprobar que el servicio es accesible desde la máquina haciendo un telnet desde Nagios contra la máquina y luego ejecutar un test como el de CPU:

[root@nagios ~]# telnet 10.10.40.55 5666
Trying 10.10.40.55…
Connected to 10.10.40.55.
Escape character is ‘^]’.
^]
telnet> quit
Connection closed.
[root@bigbrother ~]# /opt/nagios/libexec/check_nrpe -H 10.10.40.55 -c CheckDriveSize -a Drive=C: ShowAll
OK: C:: 42.9G

El archivo de configuración es C:WINDOWSsystem32nsclientNSC.ini. Los campos modificados para nuesetra instalación son:

[modules]
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll

[Settings]
allowed_hosts=10.10.10.30/32
use_file=1

[log]
[NSClient]
[NRPE]
allow_arguments=1
[Check System]
[External Script]
[External Scripts]
[External Alias]
[NSCA Agent]
[NSCA Commands]
[NRPE Handlers]
ping_media02=C:WINDOWSsystem32nsclientscriptscheck_ping.exe -H 10.10.10.250 -w 3000.0,80% -c 5000.0,100% -p 5
ping_backup01=C:WINDOWSsystem32nsclientscriptscheck_ping.exe -H 10.10.10.237 -w 3000.0,80% -c 5000.0,100% -p 5
smtp_mbx=C:WINDOWSsystem32nsclientscriptscheck_tcp -H exchangembx01.miempresa.com -p 25

En este ejemplo se pueden ver tests adicionales añadidos bajo el bloque NRPE Handlers.

En Nagios ya hay una serie de comandos creados con los tests ‘de base’ de nsclient. Se identifican con check_nsc_* y se pueden ver algunos ejemplos:

[root@nagios ~]# more /opt/nagios/etc/objects/bcn/os-hardwared-disks.cfg
define service{
use generic-service ; Name of service template to use
host_name                       server1, server2
service_description CPU
check_command check_nsc_cpu!80!90
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
}
define service{
use generic-service ; Name of service template to use
host_name                       server1
service_description Disco F
check_command check_nsc_disk!F:!80%!90%
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
}

[root@bigbrother ~]# more /opt/nagios/etc/objects/commands.cfg
# 'check_nsc_cpu' command definition
define command{
command_name check_nsc_cpu
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c CheckCPU -a warn=$ARG1$ crit=$ARG2$ time=5m time=1m time=10s
}
# 'check_nsc_disk' command definition
define command{
command_name check_nsc_disk
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c CheckDriveSize -a Drive=$ARG1$ ShowAll MaxWarn=$ARG2$ MaxCrit=$ARG3$
}