Eventos en MS Windows® y Pandora FMS

Si la hoja de cálculo fue la aplicación imprescindible para la contabilidad y la masificación de los ordenadores personales, el sistema operativo MS Windows® fue la interfaz gráfica que convirtió el trabajo en algo más agradable y cimentó el camino a los navegadores web para el internet tal como lo conocemos hoy en día.

Han transcurrido décadas y es un chiste entre nosotros los informáticos que prevalece en el tiempo: «Este es el año de Linux en el escritorio». Pienso que de plano es una afirmación que viene falla desde su origen: el kernel (Linux en este caso) poco tiene que ver con la interfaz gráfica, lo correcto es que las aplicaciones que acompañan Linux, es decir GNU/Linux sean las combinaciones que debería ganar un lugar en cientos de millones de ordenadores de nuestros hogares y trabajos.

El sistema operativo (SO) MS Windows®, a pesar que va perdiendo terreno con Android/Linux en nuestros teléfonos móviles, aún reina en los ordenadores de escritorio y el terreno de los videojuegos mantiene su posición. Muchos apuestan que la computadora personal de sobremesa desaparecerá, yo apuesto a que los teléfonos móviles los conectaremos al monitor, teclado y ratón en casa y oficina.

Pero en este año 2022 el MS Windows está fuerte en su posición de mercado y para Pandora FMS ha entrañado una serie de consideraciones muy especiales para su monitorización.

Panorama

Si sóis nuevo en esto de la monitorización, es necesario que os toméis unos pocos minutos en conocer los Conceptos básicos de Pandora FMS (en inglés «Basic Concepts | Pandora FMS«).

La monitorización con Pandora FMS lo podemos hacer tanto de manera remota como de manera local y el SO MS Windows® no es la excepción. La monitorización de manera remota puede realizarse por medio de SNMP y por WMI.

Para la monitorización local debemos instalar un pequeño programa, el cual es llamado Agente Software de Pandora FMS. Una vez instalado en MS Windows® ya estarán por defecto instalados los módulos para recolectar la información más relevante (uso de disco, consumo de RAM, etcétera).

Si lo que necesitamos monitorizar es lo básico de MS Windows® la versión Open de Pandora FMS es más que suficiente para la tarea.

Monitorización de eventos de Windows®

La cantidad de aplicaciones para MS Windows® es realmente inmensa pero en cierta manera es sencilla su monitorización de aplicaciones e incluso de procesos ya que contamos con una instrucción especial para el Agente Software llamada module_proc . Esta instrucción es capaz de indicarnos, ya sea de manera inmediata o cada período de tiempo (generalmente cada 5 minutos), si un programa o proceso está en ejecución. Si desean conocer más en detalle esta utilidad de Pandora FMS, visiten nuestro video tutorial «Monitorizar procesos o aplicaciones en Windows» (en inglés «Monitoring Windows processes in Pandora FMS«).

Hasta ahora todo esto es lo básico para monitorizar MS Windows® y en el caso de la versión Enterprise de Pandora FMS podemos «trasladar» los eventos normales (se detiene una aplicación, el almacenamiento local se llena) a eventos en Pandora FMS, los cuales pueden generar alertas y avisos para que hagamos las acciones necesarias (vaciar la papelera de reciclaje) o dejar que Pandora FMS vuelva a iniciar el software vital para nuestro trabajo o empresa (esto es conocido como Watchdog: si una aplicación por cualquier razón se detiene en MS Windows®, se vuelve a lanzar y ejecutar).

Analizando las causas

Simplificando al máximo, hasta ahora podemos decir que estamos laborando sobre verdaderos y falsos, sobres unos y ceros. Pero muchas veces nos toca analizar bajo qué condiciones una aplicación colapsa o conocer por qué no inicia. Si toda esa información relacionada la tuviéramos que ver por nuestra pantalla simplemente no pudiéramos trabajar con tantas interrupciones. Por ello existen los registros de eventos y trabajar con ellos implica más especialización por parte de Pandora FMS.

Por favor, lea también   SENIAT: Uso de máquinas fiscales sin obligatoriedad

MS Windows® presenta una ventaja como software privativo para su monitorización y es que sus eventos y correspondientes registros (simplemente llamados «logs» en inglés) son centralizados de cierta manera rutinaria o estándar.

Monitorizando un evento en particular

Pandora FMS ofrece la instrucción module_logevent que utiliza la API de Windows® y ofrece mejor desempeño que la recogida de datos por medio de WMI. Los datos los obtendremos de los registros de eventos del propio Windows.

Junto con instrucciones adicionales ofrece la posibilidad de monitorizar eventos muy específicos identificados por los campos Log Name, Source, Event ID y Level. ¿Recordáis que os dije que están estandarizados? Pues bien en Log name están bien definidos por «Aplicación», «Seguridad», «Instalación», «Sistema» y «Eventos reenviados» y debemos usar uno de ellos (en inglés) para la instrucción module_source, la cual es obligatoria en el módulo a crear en el Agente Software de Pandora FMS.

Hasta este punto solo hemos hablado de simples módulos de agentes PFMS pero, dependiendo de nuestras necesidades todo lo anterior también lo podemos realizar como un complemento o plug-in de Pandora FMS. La diferencia estriba en colocar module_type async_string cuando es un módulo de datos y module_type log cuando es un plugin.

Los plugin ofrecen flexibilidad ya que pueden devolver varios datos al mismo tiempo, a diferencia de los módulos PFMS que solo devuelven un tipo de dato específico y normalizado en PFMS. Esto es importante para lo que veremos a continuación, la instrucción module_regexp el cual tiene como parámetro un fichero de registro de eventos (.log) sobre el cual buscaremos palabras claves con la instrucción module_pattern. Esto es necesario porque existen aplicaciones antiguas que llevan su propio registro de eventos aparte, aunque en los demás aspectos no escapan del log de Windows. Esto lo explicamos en detalle en nuestro vídeo tutorial «Módulos Windows logevent y regexp» («Windows logevent and regexp modules» en inglés).

Monitorizando un canal de eventos

En MS Windows® algunos logs que no están en el registro de eventos del propio Windows pueden ser recogidos mediante los canales de registros de eventos (Windows Event Log channel  o simplemente log channels) con una instrucción especial llamada module_logchannel que no lleva parámetro alguno sino que a continuación utiliza module_source <nombre_de_canal>  junto con module_eventtype (tipo de evento), module_eventcode (código de evento) e incluso module_pattern para buscar por palabra clave. Para más detalles nuestro vídeo tutorial «Módulos de Windows: Logchannel |Pandora FMS|» («Windows modules: Logchannel |Pandora FMS|» en inglés) explica rápidamente esta característica.

Ahora bien, anuncié que estamos buscando o indagando la causa de algún problema o inconveniente en una aplicación que se ejecuta en MS Windows® pero los ejemplos que he colocado son específicos y van directo a monitorizar un punto en particular… ¿Cómo hacemos si no sabemos exactamente qué es lo que buscamos?

Elasticsearch y recolección masiva de logs

Lo que me faltaba por explicar es que si utilizamos un plugin para recolectar logs debemos instalar junto a Pandora FMS una poderosa herramienta llamada Elasticsearch la cual utiliza una base de datos no relacional capaz de guardar y clasificar toda esta gran cantidad de información. Está bien explicado, de nuevo, en otro vídeo tutorial llamado «Colector de Logs en Pandora FMS» («Log Collector in Pandora FMS» narrado en inglés)

Pero no creáis que PFMS se limita a delegar el trabajo, no: desde Elasticsearch podemos retribuir a Pandora FMS para generar alertas e informes que planteemos y luego creamos en PFMS para llegar, por fin a tener a ciencia cierta cuáles son las condiciones y valores precisos en determinado momento que una aplicación falla (o tiene valores pico de carga de trabajo, o está «sin hacer nada», etcétera).

Detectives pandorianos

Sí, pues ese término me lo he inventado para resumir y mostrar un panorama general sobre no solamente la monitorización de los eventos de MS Windows® sino también el análisis en profundidad de dichos datos recolectados. He resumido al máximo y recomiendo veáis una y otra vez los vídeo tutoriales hasta que hayáis logrado un compresión fluida y paséis a la práctica instalando tanto Pandora FMS como Elasticsearch. Si tenéis algún problema revisad la documentación oficial la cual es extensa en el tema «Monitorización y recolección de logs«.