Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como monitorear Microsoft Windows desde Nagios facilmente.

Como monitorear equipos Microsoft Windows con Nagios
En la época tan competida de hoy en día, reaccionar rápido es una ventaja competitiva. Nuestros equipos, sean virtuales o físicos, en algún momento pueden fallar y comenzar nuestro sufrimiento. Por eso existen los sistemas de monitoreo y en nuestro caso Nagios, el cual en este articulo veremos como agregarle equipos Microsoft Windows para monitorear.

Nagios puede monitorear todo tipo de equipos gracias a los plugins o módulos desarrollados. Unos opensource, otros comerciales, que nos permitirán en tiempo real conocer como están nuestros equipos Windows. Hoy veremos como monitorear usando los comandos (plugins) comunes de Nagios ademas de instalando el cliente NSClient++

Requerimientos para monitorear equipos con Nagios




Como monitorear equipo Windows en Nagios

Para los equipos Microsoft Windows una forma sencilla y sin complicaciones de monitorearlos es instalandoles un cliente que nos permita leer valores de este OS

Instalamos el cliente NSClient en Microsoft Windows

-Descargamos el cliente NSClient++ desde el siguiente URL. Debemos instalarlo con una cuenta con permisos de administrador para que se ejecute como servicio
Como monitorear equipos Microsoft Windows con Nagios

-Si nuestra cuenta de usuario es administrador, damos doble click al archivo msi descargado. En caso contrario damos click botón derecho del mouse y elegimos Ejecutar como administrador. En la ventana que nos aparece damos click al botón Ejecutar
Como monitorear equipos Microsoft Windows con Nagios

-Nos aparece la ventana del instalador. Damos click al botón Install
Como monitorear equipos Microsoft Windows con Nagios

-Leemos (recomendable aunque pocos lo hacen) la licencia de uso y marcamos el check mark inferior aceptándola. Damos click al botón Next
Como monitorear equipos Microsoft Windows con Nagios

-Daremos click al botón Typical para el tipo de instalación
Como monitorear equipos Microsoft Windows con Nagios

-A continuación se nos mostrara donde se instalar. Marcamos la opción Install sample configuration y damos click al botón Next
Como monitorear equipos Microsoft Windows con Nagios

-Aunque podemos instalar permitiendo conexiones desde todas partes, esto por seguridad no es recomendable. Escribimos la ip de nuestro servidor Nagios en Allowed hosts, una contraseña en NSClient password. Marcamos las tres primeras opciones, Enable common check plugins, Enable nsclient server, Enable NRPE server y damos click al botón Next
Como monitorear equipos Microsoft Windows con Nagios

-Ya estamos listos para instalar. Damos click al botón Install
Como monitorear equipos Microsoft Windows con Nagios

-Se nos pedirá confirmar la instalación. Damos click al botón Si
Como monitorear equipos Microsoft Windows con Nagios

-Terminamos con éxito la instalación. Damos click al botón Finish
Como monitorear equipos Microsoft Windows con Nagios

-Abrimos el Administrador de tareas (combinación de teclas Ctrl Shift Esc) y verificamos se este ejecutando nscp en la pestaña Servicios
Como monitorear equipos Microsoft Windows con Nagios

-Abrimos el firewall de nuestro Microsoft Windows Server, damos click a Reglas de entrada y a continuación buscamos NSClient++. Le damos doble click para abrir
Como monitorear equipos Microsoft Windows con Nagios

-Nos aparece la ventana de propiedades, debe mostrarse Habilitado
Como monitorear equipos Microsoft Windows con Nagios

-En la pestaña Protocolos y puertos activamos Tipo de protocolo TCP, Puerto local - Puertos específicos 12489. Damos click al botón Aplicar y después Aceptar para cerrar la ventana
Como monitorear equipos Microsoft Windows con Nagios


Cambios en Nagios para monitorear Microsoft Windows

-Nos movemos al directorio etc de nagios y modificamos su configuracion descomentando el fichero windows.cfg que viene de ejemplo con Nagios
cd /usr/local/nagios/etc/
vi nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg

-Entramos al directorio objects y creamos una copia de seguridad de windows.cfg. Es buena practica por si algo sale mal, tener una copia
cd objects/
cp windows.cfg windows.cfg-old

Personalizamos comando check_nt en Nagios

-Modificamos el comando check_nt en el archivo commands.cfg para tomar un tercer parámetro ($ARG3$) como contraseña
vi commands.cfg
# 'check_nt' command definition
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s $ARG3$
}

Agregamos equipo Windows en Nagios

-Editamos el archivo windows.cfg. Agregaremos un host windows y una serie de servicios. Generalmente ya están creados, solo es verificar datos y guardar cambios
vi windows.cfg
define host{
        use             windows-server  ; Heredar propiedades de esta plantilla
        host_name       server  ; El nombre de nuestro servidor o equipo Windows
        alias           Windows Server  ; Un alias o nombre asociado
        address         192.168.70.4    ; IP de este equipo, debe ser visible desde nagios
}

#OJO, para el servicio de chequeo de version de NSClient++ como solo se pasa un parámetro,
##debemos dar dos !! pasando en blanco el $ARG2$ y a continuación nuestra contraseña
define service{
        use                     generic-service
        host_name               server
        service_description     NSClient++ Version
        check_command         check_nt!CLIENTVERSION!!contraseña
}

#OJO, para el servicio de chequeo de version de NSClient++ como solo se pasa un parámetro,
##debemos dar dos !! pasando en blanco el $ARG2$ y a continuación nuestra contraseña
define service{
        use                     generic-service
        host_name               server
        service_description     Uptime
        check_command           check_nt!UPTIME!!contraseña
}

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

define service{
        use                     generic-service
        host_name               server
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 80 -c 90!contraseña
}

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

define service{
        use                     generic-service
        host_name               server
        service_description     W3SVC
        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC!contraseña
}

define service{
        use                     generic-service
        host_name               server
        service_description     Explorer
        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe!contraseña
}

-Verificamos todo este ok en los cambios realizados
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.3.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 02-23-2017
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
Checked 15 services.
Checked 2 hosts.
Checked 2 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 24 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 2 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

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

-Reiniciamos el servicio de Nagios y verificamos este ejecutandose
systemctl restart nagios
systemctl status nagios
● nagios.service - LSB: Starts and stops the Nagios monitoring server
   Loaded: loaded (/etc/rc.d/init.d/nagios; bad; vendor preset: disabled)
   Active: active (running) since Wed 2017-03-08 17:47:23 COT; 19s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 26083 ExecStop=/etc/rc.d/init.d/nagios stop (code=exited, status=0/SUCCESS)
  Process: 26090 ExecStart=/etc/rc.d/init.d/nagios start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nagios.service
           ├─26110 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
           ├─26112 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26113 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26114 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26115 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26116 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26117 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           └─26118 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: nerd: Channel opathchecks registered successfully
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: nerd: Fully initialized and ready to rock!
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Successfully registered manager as @wproc with query handler
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26117;pid=26117
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26116;pid=26116
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26115;pid=26115
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26114;pid=26114
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26113;pid=26113
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26112;pid=26112
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: Successfully launched command file worker with pid 26118

-Abrimos un browser y navegamos a nuestra consola Nagios. Ya nos debe aparecer el equipo Windows con sus servicios monitoreados con NSClient++
Como monitorear equipos Microsoft Windows con Nagios

De esta forma podemos agregar servicios valiendonos de los plugins de Nagios que nos muestren en tiempo real el comportamiento de nuestros equipos Microsoft Windows. Es de aclarar que este solución sirve para todas las versiones. El único impedimento en viejas versiones (Windows XP por ejemplo) es que se pueda instalar y ejecutar NSClient++ como administrador


Artículos recomendadosComo instalar MRTG en Linux
                                            Como instalar PNP4Nagios
                                            Monitorea pfSense por medio de NRPE y Nagios
                                            Como instalar NRPE en Nagios paso a paso
                                            Como instalar snmp trap en Nagios
                                            Como crear un usuario de solo lectura en Nagios
                                         

Imagino que ya debes estar mas tranquilo/a con respecto a tu infraestructura Microsoft Windows, que tal te parecio el articulo, ya usas Nagios? monitoreas equipos Windows con NSClient++, no? como lo haces? Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark