Nagios – Monitorizando nuestro primer Windows

En este documento comenzaremos con algo fácil, vamos a monitorizar nuestro primer equipo con Windows, sea un Desktop o un Server. Monitorizaremos mediante SNMP lo básico, sea uso de CPU, Memoria RAM, Disco, Red, Memoria Swap y Ping. Con esto tendremos una primera base para luego añadir más elementos que necesitemos a monitorizar!!!

 

 

Lo primero será loguearnos en Centreon como admin, y como ya tenemos instalado Centreon Plugin Pack (lo vimos en un post anterior), iremos a “Configuration” > “Hosts” > “Add”. Y añadiremos un nuevo host a monitorizar, será nuestra máquina Windows, y configuraremos al menos las siguientes opciones:

  • Name: Nombre de la máquina Windows.
  • Alias: Alias de la máquina Windows.
  • IP Address: Dirección IP o hostname fqdn de la máquina Windows.
  • SNMP Community & Version: Indicaremos la comunidad SNMP y versión que posteriormente configuraremos en la máquina Windows para permitir las consultas SNMP.
  • Monitored from: Central o el Poller más cercano.
  • Template: Añadiremos la plantilla que ya trae preconfigurados cada todos los servicios que monitorizará, escogemos “OS-Windows-SNMP-custom”.

 

Una vez añadido lo vemos, si cambiamos a la vista “Configuration” > “Services”, ya nos saldrá algo también.

 

Ahora, deberemos instalar en el equipo Windows el Servicio SNMP, para ello, iremos a “Agregar o Quitar características de Windows” y lo instalaremos. Una vez instalado, en los Servicios de Windows ya dispondremos de un nuevo servicio llamado “Servicio SNMP”. Si vamos a sus “Propiedades”, pestaña “Seguridad”, deberemos agregar la comunidad SNMP y la dirección IP o hostname del servidor Nagios que le monitorizará. Una vez aplicados los cambios, reiniciamos el servicio!

 

Bien, ahora como siempre, deberemos aplicar los cambios que hicimos en Centreon para que genere los ficheros de Nagios y cargue la configuración. Vamos a “Configuration” > “Pollers” > “Export configuration”

 

Seleccionamos el equipo donde queremos aplicar los cambios, si en la Central, en un Poller en concreto o en todos, esto al ser un entorno pequeño sólo tengo ‘Central’, marcamos los checks para generar la configuración, exportar ficheros y reiniciar el servicio de Engine, pulsamos “Export” y si todo ha ido correcto no tendremos errores en el progreso!

 

Si vamos a “Monitoring” > “Status Details” veremos ya que han salido los servicios que monitorizan ese equipo, forzamos que haga un checkeo de ellos desde “More actions…” > “Services: Schedule immediate check (Forced)”.

 

Y nada, ya tendremos algo, lo que nos cargó de la plantilla. En mi caso CPU, Memoria RAM, Ping y Memoria Swap monitorizado! Si no nos gustan los nombres de los servicios, y me refiero a que ponga en inglés ‘Memory’ y querramos renombrarlos, iremos a “Configuration” > “Services”, lo seleccionamos y unicamente bastará con modificarle la ‘Descripción’. Si queremos que esto sea una norma general y se haga para todos los servicios futuros que creemos, lo modificaremos en las ‘Templates’ o plantillas de los Servicios.

 

Añadiendo los discos duros,

Como vemos, no me ha generado el servicio de monitorización de disco, en las plantillas de servicio sí que hay algún servicio para esto, pero sinceramente no soy capaz de hacerlo funcionar. Por lo que, me viene bien por ejemplo para explicaros cómo añadir y poder apoyarnos perfectamente de un script de terceros. Descargaremos el script ‘check_win_snmp_storage.pl’ de https://exchange.nagios.org/directory/Plugins/Network-Protocols/SNMP/Enhanced-Windows-Disk-Check/details para poder monitorizar los distintos discos duros que tiene cada Windows. Os recuerdo la web https://exchange.nagios.org para buscar cualquier otro script de lo que sea que necesitéis. Seguimos, lo subimos como siempre con WinSCP al directorio de los plugins de Centreon ‘/usr/lib/centreon/plugins/’ y lo hacemos ejecutable con ‘chmod +x check_win_snmp_storage.pl’ y podremos comprobar ejecutando lo siguiente desde la shell del Nagios que funciona a las mil maravillas:

./check_win_snmp_storage.pl MAQUINA_WINDOWS COMUNIDAD LETRA_DISCO %WARNING %CRITICAL

 

Por cierto, este script le he modificado una línea, ya que no me generaba gráficas, podréis ver las diferencias del pantallazo que os paso (es la línea 174). Básicamente he metido un pipe para que genere la gráfica, unos ‘puntos y coma’ para separar los datos que devuelve y cambiado algo el orden, sin más.

 

Y ya, un comando que veamos que nos funciona en la shell del Nagios, podremos darlo de alta super fácil en Centreon. Usaremos en commando que acabamos de ejecutar en la shell, pero ahora le añadiremos variables, etc, qué mejor que ver este ejemplo. Vamos a “Configuration” > “Commands” > “Add” para crear un comando en Centreon. Ojo, que también podremos clonarlo de otro comando y sólo cambiar los valores que nos interese (ya que igual tenemos configurados los tiempos de checkeo, o el tipo de notificación, u horario…). Bueno, indicamos un nombre, como os he dicho en alguna otra ocasión, me gusta llamarles igual que el comando que se ejecuta, en este ejemplo ‘check_win_snmp_storage.pl’. Y en ‘Command Type’ pondremos pues el script que deberá ejecutar, en este caso:

$CENTREONPLUGINS$/check_win_snmp_storage.pl $HOSTADDRESS$ $_HOSTSNMPCOMMUNITY$ $ARG1$ $ARG2$ $ARG3$

 

Pulsaremos ahora en “Describe arguments”,

 

indicaremos qué significa cada argumento, para cuando creemos a continuación (y en el futuro) el servicio, sepamos qué significa cada parámetro. En este ejemplo el Argumento 1 es la letra del disco a monitorizar, el Argumento 2 es el valor en porcentaje del Warning y el Argumento 3 será el valor en porcentaje del Critical. “Save”.

 

Ahora, si creamos el servicio que va a monitorizar un disco duro, vamos a “Configuration” > “Services” > “Add” o clonamos de un servicio existente (es lo más cómodo, lo veréis según vayáis usando Centreon, ya que luego con modificar el comando que ejecuta el servicio y el nombre bastaría). Al turron, el servicio de monitorización de disco tendrá lo siguiente:

  • Descripción: Será el nombre que veremos cuando se monitorice, en este caso ‘Disco X’.
  • Linked with hosts: Aquí asociaremos este servicio a nuestras máquinas Windows que nos interese, en este caso meto 2 equipos que tienen un disco duro X:\.
  • Template: Seleccionamos ‘generic-active-service-custom’, que normalmente, habremos modificado al inicio del despliegue de Nagios con las configuraciones base que usaremos en estos servicios que iremos creando (esto lo vimos en un documento inicial).
  • Check Command: Seleccionamos el comando que acabamos de definir en Centreon, el que monitorizará el uso de disco, al seleccionar ‘check_win_snmp_storage.pl’ nos saldrá abajo los argumentos que nos pide este comando y debemos añadir (los ArgsXX).
  • Argumentos: Será lo que el comando espera que añadamos para que se ejecute correctamente, en este caso, el comando pide la letra del disco, el valor en % para un aviso de Warning y el % para un aviso Critico.

 

Lo demás podremos dejar como está por defecto, ya que lo hereda de la plantilla que escogemos. Crearemos tantos servicios de disco como necesitemos, sean discos C, D, E… y los asociaremos cada uno de ellos a cada Windows que monitorizamos!

 

Monitorizando el tráfico de red,

Si también queremos conocer el tráfico de red de los equipos, podremos aprovecharnos de un script que ya existe en nuestro Nagios, hablamos del script ‘check_centreon_snmp_traffic’ que estará en el directorio de los plugins de Nagios (/usr/lib/nagios/plugins/).

 

Por lo que si vamos por shell a dicho directorio y ejecutamos el siguiente comando, veremos el tráfico de red de una máquina, en este caso estaba metiéndole traya al equipo para que veamos el throughput que escupe… El comando pedirá primero el hostname o dirección IP del equipo a consultar, seguido del nombre de la comunidad SNMP, añadiremos el nombre del adaptador de red del equipo, posteriormente los valores de Warning y Crítical en %, la versión de SNMP, normalmente 2 y por último, deberemos especificar la velocidad de dicha NIC, en este caso va a gigabit así que le dejo en 1000. Ejemplo del comando:

/usr/lib/nagios/plugins/check_centreon_snmp_traffic -H MAQUINA_WINDOWS -C COMUNIDAD -n -i "NOMBRE_NIC" -w WARNING -c CRITICAL -v VERSION_SNMP -T VELOCIDAD_MAX

 

Ojo! que si ejecutamos este comando, lo estamos haciendo como ‘root’, por tanto, luego en Centreon, veremos que tendremos un error de permisos, ya que el fichero de caché que creará para este host lo hace con permisos de root, y el usuario de Centreon no tendrá acceso, la caché la genera en ‘/var/lib/centreon/centplugins/’ con un nombre de archivo tipo ‘traffic_cache_192.168.43.77’, por lo que con un chown le daremos acceso si es necesario al usuario ‘centreon’ (o directamente borramos la caché y que la vuelva a crear). Es por si se os da el caso. Y si queréis leer como se llama vuestra NIC, al hacer un ‘cat’ sobre el archivo de caché, veremos todas las interfaces de red que tiene dicho equipo.

 

Bueno, tras probar lo anterior, que no es necesario, ya que si seguimos estos pasos ya nos valdrá, pero no habremos jugado con la shell… Creamos pues el comando de Centreon que utilizaremos luego en el servicio que va a monitorizar el tráfico de red, como siempre, indicamos un nombre y la siguiente línea de comandos que ejecutará:

/usr/lib/nagios/plugins/check_centreon_snmp_traffic -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -n -i $ARG1$ -w $ARG2$ -c $ARG3$ -v $ARG4$ -T $ARG5$

 

Pulsamos “Describe arguments” para especificar lo que serán los parámetros y al crear el servicio lo asociemos más fácilmente.

 

En este comando, si vemos lo que escribimos en la shell con lo que nos pide, será fácil, el Argumento 1 será el nombre de la Interfaz de red o NIC, el Argumento 2 será el valor en % de Warning, el Argumento 3 será el del Critical, el Argumento 4 será la versión de SNMP (que podíamos haber puesto un 2 en el comando si siempre usaremos dicha version… y quitar este argumento), y por último el Argumento 5 será la velocidad máxima de la NIC. “Save”,

 

Momento de crear ya el servicio que va a monitorizar el tráfico de red de una máquina concreta! Vamos a “Commands” > “Services” > “Add” (o lo dicho, clonar de otro y modificar). Y añadiremos lo siguiente:

  • Description: Lo de siempre, el nombre del servicio tal y como lo veremos cuando se monitorice.
  • Linked with Hosts: Indicamos el host al que asociaremos este servicio.
  • Template: Como casi siempre, usamos ‘generic-active-service-custom’.
  • Check Command: Seleccionamos el comando que acabamos de crear que usaremos para obtener la información de red. Rellenaremos también los argumentos que nos pida este comando, que sabemos que son: El nombre de la tarjeta de red a monitorizar, el valor numérico para el Warning (normalmente 80) & Critical (normalmente 90), la versión de SNMP (normalmente 2) y la velocidad de la NIC.

 

Pulsamos en “Save” y bueno, podremos ya guardar nuestros cambios en Centreon, hacemos como al inicio del documento cuando exportamos la configuración a Nagios & reiniciamos el servicio para cargar esta nueva configuración.

 

Volvemos a la pestaña de “Monitoring” > “Status Details” > “Services” y ahí veremos ya los servicios que hemos generado, esperamos pues ya a que Nagios ejecute los testeos y veamos el resultado de la monitorización en el Windows. Como siempre, sabemos que no hace falta esperar, que podremos seleccionar desde el ‘tick’ de la columna de la izquierda, y en ‘More actions…’ seleccionar ‘Services – Schedule immediate check (Forced)’ y forzaremos pues que monitorice estos elementos!

 

Y si todo ha ido bien, ahora sí que tenemos monitorizado un equipo Windows básicamente, veremos en las gráficas los consumos de red, así como el uso de CPU, Disco, RAM o Swap. Y como digo esto es lo básico, no? Luego iremos añadiendo más cosas que necesitemos como son por ejemplo la monitorización de los servicios que ofrezca dicha máquina, etc… ya lo veremos más adelante!!!

 

Héctor Herrero

Autor del blog Bujarra.com
Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir 😉 . Disfrutar de los documentos!!!

Últimos Posts de: Héctor Herrero (ver todos)