Nagios – Überwachen von Fenstern
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, WIDDER, Disco, Rot, 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), Wir gehen zu “Konfiguration” > “Wirte” > “Hinzufügen”. 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-Adresse: Dirección IP o hostname fqdn de la máquina Windows.
- SNMP-Gemeinschaft & Version: Indicaremos la comunidad SNMP y versión que posteriormente configuraremos en la máquina Windows para permitir las consultas SNMP.
- Überwacht von: Central o el Poller más cercano.
- Schablone: 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 “Konfiguration” > “Dienste”, ya nos saldrá algo también.
Jetzt, deberemos instalar en el equipo Windows el Servicio SNMP, hierfür, Wir gehen zu “Agregar o Quitar características de Windows” y lo instalaremos. Nach der Installation, en los Servicios de Windows ya dispondremos de un nuevo servicio llamado “Servicio SNMP”. Si vamos a sus “Eigenschaften”, Wimper “Sicherheit”, 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!
Nicht schlecht, ahora como siempre, deberemos aplicar los cambios que hicimos en Centreon para que genere los ficheros de Nagios y cargue la configuración. Wir werden “Konfiguration” > “Meinungsforscher” > “Konfiguration exportieren”
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, Gedrückt “Exportieren” y si todo ha ido correcto no tendremos errores en el progreso!
Wenn wir “Überwachung” > “Status Details” veremos ya que han salido los servicios que monitorizan ese equipo, forzamos que haga un checkeo de ellos desde “Weitere Aktionen…” > “Dienste: Sofortiger Check terminieren (Erzwungen)”.
Und nichts, ya tendremos algo, lo que nos cargó de la plantilla. En mi caso CPU, WIDDER, 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, Wir gehen zu “Konfiguration” > “Dienste”, 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,
Wie wir sehen können, 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’ von 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. Wir, 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:
[Quellcode]./check_win_snmp_storage.pl MAQUINA_WINDOWS COMUNIDAD LETRA_DISCO %WARNING %CRITICAL[/Quellcode]
Übrigens, 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. Wir werden “Konfiguration” > “Befehle” > “Hinzufügen” para crear un comando en Centreon. Auge, 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…). Brunnen, Wir geben einen Namen an, 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, In diesem Fall:
[Quellcode]$CENTREONPLUGINS$/check_win_snmp_storage.pl $HOSTADDRESS$ $_HOSTSNMPCOMMUNITY$ $ARG1$ $ARG2$ $ARG3$[/Quellcode]
Pulsaremos ahora en “Beschreiben von Argumenten”,
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. “Retten”.
Jetzt, si creamos el servicio que va a monitorizar un disco duro, Wir werden “Konfiguration” > “Dienste” > “Hinzufügen” 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:
- Beschreibung: 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:\.
- Schablone: 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).
- Befehl prüfen: 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).
- Argumente: Será lo que el comando espera que añadamos para que se ejecute correctamente, In diesem Fall, 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, Und… 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, normalerweise 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:
[Quellcode]/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[/Quellcode]
Auge! que si ejecutamos este comando, lo estamos haciendo como ‘root’, deshalb, 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.
Brunnen, 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, wie gewöhnlich, indicamos un nombre y la siguiente línea de comandos que ejecutará:
[Quellcode]/usr/lib/nagios/plugins/check_centreon_snmp_traffic -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -n -i $ARG1$ -w $ARG2$ -c $ARG3$ -v $ARG4$ -T $ARG5$[/Quellcode]
Gedrückt “Beschreiben von Argumenten” 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. “Retten”,
Momento de crear ya el servicio que va a monitorizar el tráfico de red de una máquina concreta! Wir werden “Befehle” > “Dienste” > “Hinzufügen” (o lo dicho, clonar de otro y modificar). Y añadiremos lo siguiente:
- Beschreibung: Lo de siempre, el nombre del servicio tal y como lo veremos cuando se monitorice.
- Verknüpft mit Hosts: Indicamos el host al que asociaremos este servicio.
- Schablone: Como casi siempre, usamos ‘generic-active-service-custom’.
- Befehl prüfen: 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 (normalerweise 80) & Critical (normalerweise 90), la versión de SNMP (normalerweise 2) y la velocidad de la NIC.
Anklicken “Retten” 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 “Überwachung” > “Status Details” > “Dienste” 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. Wie gewöhnlich, sabemos que no hace falta esperar, que podremos seleccionar desde el ‘tick’ de la columna de la izquierda, y en ‘More actions…’ seleccionar ‘Services – Sofortiger Check terminieren (Erzwungen)’ 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, Nein? 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!!!