Búsqueda de sitios web

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 carga de CPU, uso de disco, >Uso de memoria, Servicios, etc. Para ello, requerimos instalar un complemento NSClient++ en la máquina Windows. El complemento actúa como 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.

Asumimos 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.x y Fedora 19/18/17
  2. Agregue un host Linux al servidor de monitoreo de Nagios

Para monitorear Máquinas Windows necesitarás seguir varios pasos y son:

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

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

  1. Ya se agregó una definición de comando check_nt al archivo command.cfg. Este comando de definición lo utiliza el complemento check_nt para monitorear los servicios de Windows.
  2. Una plantilla de host de servidor 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 /usr/local/nagios/etc/objects/ directorio. Puede modificar y agregar sus propias definiciones que se adapten a sus necesidades. Pero le recomiendo que siga las instrucciones descritas en este artículo y podrá monitorear exitosamente su host de Windows en menos de 20 minutos.

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

Utilice las instrucciones siguientes para instalar el NSClient++ Agent en el host remoto de Windows. Primero descargue la última versión estable de los archivos fuente del complemento NSClient++ 0.3.1, que se puede 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 MS-DOS desde la pantalla de inicio –> Ejecutar –> escriba 'cmd' y presione enter 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 derecho en NSClient, vaya a Propiedades y luego a la pestaña 'Iniciar sesión' y haga clic 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

Descomente los “allowed_hosts” en la sección “Configuración” y defina la dirección IP de su Servidor de Monitoreo Nagios o déjelo 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 configúrelo como 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 ícono en la bandeja del sistema en un círculo amarillo con una 'M' negra dentro.

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

Ahora inicie sesión en Nagios Server 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.

[root@tecmint]# vi /usr/local/nagios/etc/objects/windows.cfg

Una definición de host de Windows de muestra ya definida para la máquina Windows; simplemente puede cambiar la definición de host como los campos nombre_host, alias y dirección a los apropiados. valores de su máquina 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 más definiciones de servicios que deban monitorearse, puede simplemente agregar esas definiciones al mismo archivo de configuración. Asegúrese de cambiar el nombre_host para todos estos servicios con el nombre_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, descomente el archivo windows.cfg en /usr/local/nagios/etc/nagios.cfg.

[root@tecmint]# 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 para detectar errores.

[root@tecmint]# /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 solucione esos errores, reinicie el servicio Nagios.

[root@tecmint]# service nagios restart

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

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

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