lunes, 16 de agosto de 2010

Monitorizar Windows 7 con Nagios, Centreon y NSClient++

Una vez instalado Nagios y Centreon, como podemos ver en el siguiente enlace del blog
http://yoadminsis.blogspot.com/2010/08/centreon-219-y-nagios-321-en-ubuntu.html

podemos monitorizar los equipos con Microsoft Windows. En mi caso he monitorizado un Windows 7 Home Premium de 64 bits, pero es válido para Windows XP.

Configuración del cliente Windows

Lo primero que debemos hacer es configurar el cliente Microsoft Windows. Hay que descargar la aplicación NSClient++ de 64 bits desde el siguiente enlace.

http://downloads.sourceforge.net/project/nscplus/nscplus/NSClient%2B%2B%200.3.8/NSClient%2B%2B-0.3.8-x64.msi?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnscplus%2F&ts=1281950994&mirror=puzzle

La versión es la 0.3.8 64 bits. Una vez descargado el fichero NSClient++-0.3.8-x64.msi, lo ejecutamos y vemos las siguientes pantallas:

Pantalla de bienvenida del asistente de instalación. Pulsamos Next.


Aceptamos la licencia GNUv2 y pulsamos Next.


Seleccionamos todo para instalar (por defecto). Pulsamos Next.


Creamos un fichero de configuración nuevo. Si ya teníamos instalado otra versión antigua de NSClient++ que usara archivos de configuración antiguos, debemos leer lo que nos pone aquí sobre los ficheros de configuración.


En esta ventana debemos poner la dirección IP del servidor Nagios donde vayamos a enviar los datos. La contraseña la dejamos en blanco. Si pusiéramos contraseña, deberíamos cambiar el comando check_nt del servidor nagios para que usara la contraseña que hemos puesto (añadir la opcion -s). Marcamos las opciones que se ven en pantalla. Pulsamos Next.


En las siguientes pantallas pulsamos Install para que se instale la aplicación y, después de la instalación de los ficheros, marcamos que se inicie el servicio y pulsamos Finish. Si queremos podemos donar algo al proyecto marcando la casilla correspondiente.




Por último comprobamos que el servicio está iniciado. Vamos a Inicio --> Click del Botón Derecho en Equipo --> Administrar --> Servicios y Aplicaciones --> Servicios. Vamos al servicio NSClient++ (x64)

En nuestro caso no estaba iniciado. Lo configuramos para que se inicie automáticamente y para que interactue con el escritorio. Después pulsamos Iniciar.



También podríamos iniciarlo desde linea de comandos pero no tenemos activa la cuenta Administrador de Windows 7 Home Premium. La Home Premiun no deja usar la mmc (consola gráfica) de usuarios a no ser que pagues más de lo que ya has pagado... y luego dicen que porque los administradores preferimos GNU\Linux...

Para activar la cuenta Administrador pulsamos Inicio-->Todos los programas --> Accesorios --> Click en Botón Derecho en Símbolo del sistema --> Ejecutar como Administrador. Nos abrirá la consola en "modo elevado" (algunos privilegios de administrador) y ahora ponemos los siguientes comandos (donde pone password ponemos la contraseña del usuario Administrador que queramos para el usuario)

Microsoft Windows [Versión 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Windows\system32>net user Administrador /ACTIVE:yes
Se ha completado el comando correctamente.

C:\Windows\system32>net user Administrador password
Se ha completado el comando correctamente.

Una vez activado el usuario Administrador y la contraseña... (que fácil es Ms Windows :-)... ¿no? jeje)

Primero abrimos la consola como usuario Administrador usando runas, el equivalente a sudo en GNU\Linux, casaw7 es el nombre del equipo windows 7 home premium. En esta nueva consola iniciamos el servicio con net start o podemos pararlo con net stop . Por último, vemos el estado del servicio con sc query e información extendica con sc queryex . Con sc también podríamos arrancar y parar servicios, entre otras muchas cosas.



C:\Windows\system32>runas /user:casaw7\Administrador "cmd"
Escriba la contraseña para casaw7\Administrador:
Intentando iniciar cmd como usuario "casaw7\Administrador" ...

C:\Windows\system32>net start NSClientpp
El servicio de NSClient++ (x64) está iniciándose.
El servicio de NSClient++ (x64) se ha iniciado correctamente.

C:\Windows\system32> sc query NSClientpp

NOMBRE_SERVICIO: NSClientpp
        TIPO               : 110  WIN32_OWN_PROCESS  (interactive)
        ESTADO             : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        CÓD_SALIDA_WIN32   : 0  (0x0)
        CÓD_SALIDA_SERVICIO: 0  (0x0)
        PUNTO_COMPROB.     : 0x0
        INDICACIÓN_INICIO  : 0x0

C:\Windows\system32>sc qc NSClientpp
[SC] QueryServiceConfig CORRECTO

NOMBRE_SERVICIO: NSClientpp
        TIPO               : 110  WIN32_OWN_PROCESS (interactive)
        TIPO_INICIO        : 2   AUTO_START
        CONTROL_ERROR      : 1   NORMAL
        NOMBRE_RUTA_BINARIO: C:\Program Files\NSClient++\nsclient++.exe
        GRUPO_ORDEN_CARGA  :
        ETIQUETA           : 0
        NOMBRE_MOSTRAR     : NSClient++ (x64)
        DEPENDENCIAS       :
        NOMBRE_INICIO_SERVICIO: LocalSystem

Lo hemos hecho desde la cuenta de Administrador porque así nos aseguramos que tenemos todos los permisos. La cuenta de usuario con privilegios de Administrador que nos creamos al instalar Ms Windows, aunque nos permite iniciar y parar los servicios con NET START, NET STOP al ejecutar una consola en modo elevado, no tiene todos los permisos del usuario Administrador.

El archivo de configuración del servicio NSClient++ se encuentra en C:\Program Files\NSClient++\NSC.ini donde podremos editar algunos parámetros con un editor de textos si es necesario alguna vez.

Servidor Nagios/Centreon

Ahora ya podemos recoger datos desde Ms Windwos. Lo que debemos tener es el plugin check_nt instalado. En el artículo de instalación de Nagios y Centreon, check_nt se instala junto con los nagios-plugins, así que ya lo tenemos.

Simplemente debemos abrir Centreon, configurar un host llamado casaw7 y agregar los servicios que queramos monitorizar usando check_nt para ello.

Configuramos el host

Vamos a Configuración, Hosts y damos a Add. Rellenamos los campos como tenemos en las dos capturas de pantallas siguientes. Relacionamos el Host con el host-group Windows-Servers.





Configuramos el servicio

Configuramos el servicio que queramos monitorizar. Vamos a Configuración, Services y damos a Add.

El servicio lo vamos a relacionar con el grupo de hosts Windows-Servers, en la pestaña relations, en vez de con el host casaw7, así, todos los hosts que pertenezcan al host-group Windows-Servers tendrán este servicio asociado (además de todos los servicios adicionales del grupo de hosts Windows-Servers que ya tuvieramos)

En concreto, como ejemplo, crearemos el servicio que nos indica la versión del servicio NSClient++. Lo ponemos como viene en las capturas de pantalla.






Con esto tendremos el host y el servicio creado. Si queremos crear otro servicio, como monitorizar el espacio de C, o la carga de memoria o CPU, repetimos los pasos y cambiamos la variable del comando. En vez de CLIENTVERSION otra de la que disponga el comando check_nt.

Para que tenga efecto, y como vimos en la instalación de Nagios y Centreon, vamos a Configuración, Nagios, Generate y generamos los ficheros con la opción Move Export Files. Le damos Export y listo. A partir de ahora Nagios cogera la información de nuestro Windows y lo mostrará en Centreon.



Si vamos a la monitorización de servicios, vemos como el host casawin7 tiene el servicio NSClient++ 64bit Version OK y nos devuelve la versión, pero también vemos como el host casawin7 tiene también este servicio sin tocar este host. Esto es porque casawin7 pertenece, también al grupo de hosts Windows-Servers y el servicio se le ha añadido automáticamente.



Y listo :-)
Related Posts with Thumbnails