Cómo agregar un host de Windows al servidor de monitoreo de Nagios


Este artículo describe cómo monitorear los servicios “privados” de las máquinas Windows, como la carga de la CPU, el uso del disco, el uso de la memoria, los servicios, etc. Para esto, necesitamos instalar un complemento NSClient ++ en la máquina Windows. El complemento actúa como un proxy entre la máquina Windows y Nagios y monitorea los servicios reales comunicándose con el complemento check_nt. El complemento check_nt ya está instalado en el servidor de monitoreo de Nagios, si siguió nuestra guía de instalación de Nagios.

Suponemos que ya ha instalado y configurado el servidor Nagios de acuerdo con nuestras siguientes guías.

  1. Cómo instalar Nagios 4.0.1 en RHEL/CentOS 6.x/5.xy Fedora 19/18/17
  2. Agregue el host Linux al servidor de monitoreo de Nagios

Para monitorear máquinas con Windows, deberá seguir varios pasos y son:

  1. Instale el complemento NSClient ++ en la máquina de Windows.
  2. Configure Nagios Server para monitorear Windows Machine.
  3. Agregue nuevas definiciones de host y servicio para el monitoreo de máquinas de Windows.
  4. Reinicie el servicio Nagios.

Para hacer esta guía simple y más fácil, algunas configuraciones ya están hechas para usted en la instalación de Nagios.

  1. Una definición de comando check_nt ya agregada al archivo command.cfg. El complemento check_nt usa este comando de definición para monitorear los servicios de Windows.
  2. Una plantilla de host de servidor de Windows ya creada en el archivo templates.cfg. Esta plantilla le permite agregar nuevas definiciones de host de Windows.

Los dos archivos anteriores "command.cfg" y "templates.cfg" se pueden encontrar en el directorio/usr/local/nagios/etc/objects /. Puede modificar y agregar sus propias definiciones que se adapten a sus necesidades. Pero te recomiendo que sigas las instrucciones descritas en este artículo y estarás monitoreando exitosamente tu host de Windows en menos de 20 minutos.

Paso 1: Instalar NSClient ++ Agent en una máquina con Windows

Utilice las instrucciones siguientes para instalar NSClient ++ Agent en el host de Windows remoto. Primero descargue los archivos fuente del complemento NSClient ++ 0.3.1 de la última versión estable, que se pueden encontrar en el siguiente enlace.

  1. http://sourceforge.net/projects/nscplus/

Una vez que haya descargado la última versión estable, descomprima los archivos NSClient ++ en un nuevo directorio C:\NSClient ++.

Ahora abra un símbolo del sistema de MS-DOS desde la pantalla de inicio -> Ejecutar -> escriba "cmd" y presione Intro y cambie al directorio C:\NSClient ++.

C:\NSClient++

A continuación, registre el servicio NSClient ++ en el sistema con el siguiente comando.

nsclient++ /install

Finalmente, instale la bandeja del sistema NSClient ++ con el siguiente comando.

nsclient++ SysTray

Abra el Administrador de servicios de Windows y haga clic con el botón derecho en NSClient, vaya a Propiedades y luego a la pestaña "Iniciar sesión" y haga clic en la casilla de verificación que dice "Permitir que el servicio interactúe con el escritorio". Si aún no está permitido, marque la casilla para permitirlo.

Abra el archivo NSC.INI ubicado en el directorio C:\NSClient ++ y descomente todos los módulos definidos en la sección "módulos", excepto CheckWMI.dll y RemoteConfiguration.dll.

[modules]
;# NSCLIENT++ MODULES
;# A list with DLLs to load at startup.
;  You will need to enable some of these for NSClient++ to work.
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
; *                                                               *
; * N O T I C E ! ! ! - Y O U   H A V E   T O   E D I T   T H I S *
; *                                                               *
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
;CheckWMI.dll
;
; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!
;RemoteConfiguration.dll
; NSCA Agent is a new beta module use with care!
;NSCAAgent.dll
; LUA script module used to write your own "check deamon" (sort of) early beta.
;LUAScript.dll
; Script to check external scripts and/or internal aliases, early beta.
;CheckExternalScripts.dll
; Check other hosts through NRPE extreme beta and probably a bit dangerous! :)
;NRPEClient.dll

Elimine el comentario de "allowed_hosts" en la sección "Configuración" y defina la dirección IP de su Servidor de Monitoreo Nagios o déjela en blanco para permitir que cualquier host se conecte.

[Settings]
;# ALLOWED HOST ADDRESSES
;  This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.
;  If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).
;  The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access
allowed_hosts=172.16.27.41

Descomente el "puerto" en la sección "NSClient" y establezca el puerto predeterminado "12489". Asegúrese de abrir el puerto "12489" en el Firewall de Windows.

[NSClient]
;# NSCLIENT PORT NUMBER
;  This is the port the NSClientListener.dll will listen to.
port=12489

Finalmente, inicie el servicio NSClient ++ con el siguiente comando.

nsclient++ /start

Si está instalado y configurado correctamente, debería ver un nuevo icono en la bandeja del sistema en un círculo amarillo con una "M" negra en el interior.

Paso 2: configurar el servidor Nagios y agregar hosts de Windows

Ahora inicie sesión en el servidor Nagios y agregue algunas definiciones de objetos en los archivos de configuración de Nagios para monitorear la nueva máquina Windows. Abra el archivo windows.cfg para editarlo con el editor Vi.

[[email protected]]# vi /usr/local/nagios/etc/objects/windows.cfg

Una definición de host de Windows de muestra ya definida para la máquina de Windows, simplemente puede cambiar la definición de host como nombre de host, alias y campos de dirección a los valores apropiados de su máquina de Windows.

###############################################################################
###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################
###############################################################################

# Define a host for the Windows machine we'll be monitoring
# Change the host_name, alias, and address to fit your situation

define host{
        use             windows-server  ; Inherit default values from a template
        host_name       winserver       ; The name we're giving to this host
        alias           My Windows Server       ; A longer name associated with the host
        address         172.31.41.53    ; IP address of the host
        }

Los siguientes servicios ya están agregados y habilitados en el archivo windows.cfg. Si desea agregar algunas otras definiciones de servicio que necesitan ser monitoreadas, puede simplemente agregar esas definiciones al mismo archivo de configuración. Asegúrese de cambiar el nombre de host para todos estos servicios con nombre de host definido en el paso anterior.

define service{
	use			generic-service
	host_name		winserver
	service_description	NSClient++ Version
	check_command		check_nt!CLIENTVERSION
	}

Add the following service definition to monitor the uptime of the Windows server.

define service{
	use			generic-service
	host_name		winserver
	service_description	Uptime
	check_command		check_nt!UPTIME
	}

Add the following service definition to monitor the CPU utilization on the Windows server and generate a CRITICAL alert if the 5-minute CPU load is 90% or more or a WARNING alert if the 5-minute load is 80% or greater.

define service{
	use			generic-service
	host_name		winserver
	service_description	CPU Load
	check_command		check_nt!CPULOAD!-l 5,80,90
	}

Add the following service definition to monitor memory usage on the Windows server and generate a CRITICAL alert if memory usage is 90% or more or a WARNING alert if memory usage is 80% or greater.

define service{
	use			generic-service
	host_name		winserver
	service_description	Memory Usage
	check_command		check_nt!MEMUSE!-w 80 -c 90
	}

Add the following service definition to monitor usage of the C:\ drive on the Windows server and generate a CRITICAL alert if disk usage is 90% or more or a WARNING alert if disk usage is 80% or greater.

define service{
	use			generic-service
	host_name		winserver
	service_description	C:\ Drive Space
	check_command		check_nt!USEDDISKSPACE!-l c -w 80 -c 90
	}

Add the following service definition to monitor the W3SVC service state on the Windows machine and generate a CRITICAL alert if the service is stopped.

define service{
	use			generic-service
	host_name		winserver
	service_description	W3SVC
	check_command		check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
	}

Add the following service definition to monitor the Explorer.exe process on the Windows machine and generate a CRITICAL alert if the process is not running.

define service{
	use			generic-service
	host_name		winserver
	service_description	Explorer
	check_command		check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
	}

Por último, elimine el comentario del archivo windows.cfg en /usr/local/nagios/etc/nagios.cfg.

[[email protected]]# vi /usr/local/nagios/etc/nagios.cfg
# Definitions for monitoring a Windows machine
cfg_file=/usr/local/nagios/etc/objects/windows.cfg

Finalmente, verifique los archivos de configuración de Nagios en busca de errores.

[[email protected]]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Si el proceso de verificación arroja algún mensaje de error, corríjalo hasta que el proceso de verificación se complete sin ningún mensaje de error. Una vez que corrija esos errores, reinicie el servicio de Nagios.

[[email protected]]# service nagios restart

Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.

Eso es. Ahora vaya a la interfaz web de monitoreo de Nagios en “http:// Su-dirección-IP-del-servidor/nagios” o “http:// FQDN/nagios” y proporcione el nombre de usuario “nagiosadmin” y la contraseña. Verifique que el host remoto de Windows se haya agregado y esté siendo monitoreado.

¡Eso es! por ahora, en mi próximo artículo, le mostraré cómo agregar impresoras y conmutadores al servidor de monitoreo de Nagios. Si tiene alguna dificultad al agregar el host de Windows a Nagios. Por favor comente sus consultas a través de la sección de comentarios, hasta entonces permanezca atento a Tecmint.com para más artículos valiosos de este tipo.