Saltar a contenido

Agente Windows

Para poder monitorear equipos que tengan instalado el sistema operativo Microsoft Windows, es preciso instalar en ellos un agente que se encargará de comunicarse con el servidor Nagios para enviar información sobre los mismos. Este agente es NSClient++.

1. Descarga e instalación de NSClient++

Podemos descargar el agente de Nagios para Windows desde github

Una vez que hayamos descargado el programa, al hacer clic sobre el ejecutable veremos una pantalla similar a la se muestra a continuación. Hacemos clic en Next para continuar:

NSClient

Luego elegimos la herramienta de monitoreo Generic:

NSClient

A continuación, seleccionamos el tipo de instalación Complete:

NSClient

Llegados a este punto, ingresamos la dirección IP del servidor Nagios (sin contraseña). Luego marcamos:

  • todas las casillas de verificación
  • el botón de radio seteado en la opción "Insecure legacy mode". Luego presionamos el botón Next:

NSClient

En este paso, presionamos Install:

NSClient

Y comenzará la Instalación...

NSClient

Segundos más tarde, la instalación habrá concluido. Clic en Finish para cerrar el instalador.

NSClient

2. Habilitando los módulos de NSClient++ manualmente

Para habilitar todos los módulos del agente NSClient++ editamos el archivo de configuración del programa, llamado nsclient.ini. Abriremos el archivo en cuestión con un editor de texto en modo administrador y reemplazaremos su contenido del mismo por el que sigue:

nsclient.ini
; IMPORTANTE: modificar la dirección ip en "allowed hosts" por la dirección IP del servidor Nagios

[/modules]
CheckDisk = enabled
CheckEventLog = enabled
CheckExternalScripts = enabled
CheckHelpers = enabled
CheckNSCP = enabled
CheckSystem = enabled
CheckWMI = 1
NRPEServer = enabled
NSClientServer = enabled

[/settings/default]
allowed hosts = 10.0.7.131

[/settings/external scripts]
allow arguments = true

[/settings/external scripts/wrapped scripts]
check_replica=check_replica.ps1

[/settings/external scripts/alias]
alias_cpu = checkCPU warn=80 crit=90 time=5m time=1m time=30s
alias_cpu_ex = checkCPU warn=$ARG1$ crit=$ARG2$ time=5m time=1m time=30s
alias_disk = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED
alias_disk_loose = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED ignore-unreadable
alias_event_log = CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -2d AND severity NOT IN ('success', 'informational') AND source != 'SideBySide'" truncate=800 unique descriptions "syntax=%severity%: %source%: %message% (%count%)"
alias_file_age = checkFile2 filter=out "file=$ARG1$" filter-written=>1d MaxWarn=1 MaxCrit=1 "syntax=%filename% %write%"
alias_file_size = CheckFiles "filter=size > $ARG2$" "path=$ARG1$" MaxWarn=1 MaxCrit=1 "syntax=%filename% %size%" max-dir-depth=10
alias_mem = checkMem MaxWarn=80% MaxCrit=90% ShowAll=long type=physical type=virtual type=paged type=page
alias_process = checkProcState "$ARG1$=started"
alias_process_count = checkProcState MaxWarnCount=$ARG2$ MaxCritCount=$ARG3$ "$ARG1$=started"
alias_process_hung = checkProcState MaxWarnCount=1 MaxCritCount=1 "$ARG1$=hung"
alias_process_stopped = checkProcState "$ARG1$=stopped"
alias_sched_all = CheckTaskSched "filter=exit_code ne 0" "syntax=%title%: %exit_code%" warn=>0
alias_sched_long = CheckTaskSched "filter=status = 'running' AND most_recent_run_time < -$ARG1$" "syntax=%title% (%most_recent_run_time%)" warn=>0
alias_sched_task = CheckTaskSched "filter=title eq '$ARG1$' AND exit_code ne 0" "syntax=%title% (%most_recent_run_time%)" warn=>0
alias_service = checkServiceState CheckAll
alias_service_ex = checkServiceState CheckAll "exclude=Net Driver HPZ12" "exclude=Pml Driver HPZ12" exclude=stisvc
alias_up = checkUpTime MinWarn=1d MinWarn=1h
alias_updates = check_updates -warning 0 -critical 0
alias_volumes = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED
alias_volumes_loose = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED ignore-unreadable

[/settings/NRPE/server]
verify mode = none
insecure = true

a. Abrimos el "Simbolo del sistema" (cmd) en modo administrador y desde allí nos desplazamos a la carpeta de instalación del programa:

cd "C:\Program Files\NSClient++"

b. Continuando en la terminal, abrimos con el "Bloc de notas" el archivo nsclient.ini:

start notepad nsclient.ini
Reemplazamos el contenido del archivo nsclient.ini por el indicado más arriba.

Podemos realizar el mismo procedimiento abriendo el archivo con el "Bloc de Notas" en modo administrador desde la carpeta de instalación del programa NSClient++:

NSClient

Una vez abierto el archivo nsclient.ini, reemplazar su contenido por el indicado más arriba.

3. Permitimos que el servicio interactúe con el sistema operativo

Podremos realizar la acción de dos maneras: gráfica o empleando la terminal de comandos PowerShell.

En Windows abrimos el diálogo Ejecutar pulsando las teclas Windows + R y ejecutamos services.msc

Servicios Windows

Hacemos clic derecho sobre el servicio NSClient++ Monitoring Agent y seleccionamos la opción Propiedades del menú contextual

Servicios Windows

Verificamos que el servicio NSClient++ este iniciado y seteado como automático.

Servicios Windows

Elegimos la pestaña Iniciar sesión. Allí tildaremos la opción Permitir que el servicio interactúe con el escritorio.

Servicios Windows

Finalmente, hacemos clic derecho sobre el servicio y del menú contextual, seleccionamos la opción "Restart" para reiniciar el servicio NSClient++ y aplicar los cambios realizados.

Abrimos PowerShell en modo administrador y ejecutamos:

Set-Service -Name nscp -StartupType Automatic
sc.exe config nscp obj=LocalSystem
sc.exe config nscp type=interact type=own
Restart-Service -Name nscp

4. Permitimos ICMP en el Firewall de Windows

Para permitir la comunicación fluida entre el host Windows y el servidor Nagios, permitimos el tráfico ICMP. Podemos hacerlo de manera gráfica o empleando la terminal de comando de PowerShell.

Abrimos PowerShell en modo administrador y ejecutamos:

netsh advfirewall firewall add rule name="Permitir Ping" dir=in action=allow protocol=icmpv4

Para crear una regla de Firewall de manera gráfica, seguí el tutorial en el enlace: https://redes.rauljesus.xyz/networking/network-firewall-windows

Por último, tendremos que verificar la configuración y reiniciar el servidor Nagios para guardar los cambios que hayamos introducido.