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:
Luego elegimos la herramienta de monitoreo Generic:
A continuación, seleccionamos el tipo de instalación Complete:
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:
En este paso, presionamos Install:
Y comenzará la Instalación...
Segundos más tarde, la instalación habrá concluido. Clic en Finish para cerrar el instalador.
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:
; 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:
b. Continuando en la terminal, abrimos con el "Bloc de notas" el archivo nsclient.ini
:
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++:
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
Hacemos clic derecho sobre el servicio NSClient++ Monitoring Agent y seleccionamos la opción Propiedades del menú contextual
Verificamos que el servicio NSClient++ este iniciado y seteado como automático.
Elegimos la pestaña Iniciar sesión. Allí tildaremos la opción Permitir que el servicio interactúe con el escritorio.
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.
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:
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.