En informática , la monitorización de eventos es el proceso de recopilar, analizar y notificar la ocurrencia de eventos a los suscriptores, como los procesos del sistema operativo , las reglas activas de la base de datos y los operadores humanos. Estas ocurrencias de eventos pueden provenir de fuentes arbitrarias, tanto de software como de hardware , como sistemas operativos, sistemas de gestión de bases de datos , software de aplicación y procesadores . La monitorización de eventos puede utilizar una base de datos de series temporales .
Conceptos básicos
La monitorización de eventos utiliza un bus lógico para transportar eventos desde las fuentes a los suscriptores . Las fuentes de eventos envían señales a todos los suscriptores, quienes a su vez reciben los eventos. Un bus de eventos puede distribuirse entre varios nodos físicos , como sistemas informáticos independientes. Ejemplos típicos de buses de eventos se encuentran en sistemas gráficos como X Window System y Microsoft Windows , así como en herramientas de desarrollo como SDT.
La recopilación de eventos es el proceso de reunir las ocurrencias de eventos en un registro de eventos filtrado para su análisis. Un registro de eventos filtrado contiene las ocurrencias de eventos que pueden ser útiles en el futuro; esto implica que las ocurrencias de eventos pueden eliminarse del registro si resultan inútiles. El análisis del registro de eventos es el proceso de analizar el registro de eventos filtrado para agrupar las ocurrencias de eventos o decidir si una ocurrencia de evento debe ser señalizada. La señalización de eventos es el proceso de señalizar las ocurrencias de eventos a través del bus de eventos.
Aquello que se monitoriza se denomina objeto monitorizado ; por ejemplo, una aplicación, un sistema operativo, una base de datos, hardware, etc., pueden ser objetos monitorizados. Un objeto monitorizado debe estar debidamente equipado con sensores de eventos para permitir la monitorización de eventos; es decir, debe estar instrumentado con sensores de eventos para ser considerado un objeto monitorizado. Los sensores de eventos son sensores que señalan la ocurrencia de eventos cuando estos se producen. Siempre que algo se monitoriza, es necesario gestionar el efecto de la sonda .
Objetos monitorizados y el efecto de la sonda
Como lo explica Gait, [ 1 ] cuando se monitorea un objeto, su comportamiento cambia. En particular, en cualquier sistema concurrente donde los procesos pueden ejecutarse en paralelo , esto plantea un problema específico. La razón es que, al introducir sensores en el sistema, los procesos pueden ejecutarse en un orden diferente. Esto puede causar problemas si, por ejemplo, intentamos localizar una falla y, al monitorear el sistema, modificamos su comportamiento de tal manera que la falla no se convierta en un fallo; en esencia, la falla puede quedar enmascarada mediante el monitoreo del sistema. El efecto de sonda es la diferencia de comportamiento entre un objeto monitoreado y su contraparte no instrumentada.
Según Schütz, [ 2 ] podemos evitar, compensar o ignorar el efecto de la sonda. En sistemas críticos en tiempo real, donde la puntualidad (es decir, la capacidad de un sistema para cumplir con restricciones de tiempo como plazos) es significativa, la evitación es la única opción. Si, por ejemplo, instrumentamos un sistema para realizar pruebas y luego retiramos la instrumentación antes de la entrega, esto invalida los resultados de la mayoría de las pruebas basadas en el sistema completo. En sistemas menos críticos en tiempo real (por ejemplo, sistemas basados en medios), la compensación puede ser aceptable para, por ejemplo, pruebas de rendimiento . En sistemas no concurrentes, ignorar el efecto es aceptable, ya que el comportamiento con respecto al orden de ejecución permanece inalterado.
Análisis del registro de eventos
El análisis de registros de eventos se conoce como composición de eventos en bases de datos activas , reconocimiento de crónicas en inteligencia artificial y evaluación lógica en tiempo real en sistemas en tiempo real. Esencialmente, el análisis de registros de eventos se utiliza para la coincidencia de patrones , el filtrado de ocurrencias de eventos y la agregación de ocurrencias de eventos en ocurrencias de eventos compuestos. Comúnmente, se emplean estrategias de programación dinámica de algoritmos para guardar los resultados de análisis previos para su uso futuro, ya que, por ejemplo, el mismo patrón puede coincidir con las mismas ocurrencias de eventos en varios procesos de análisis consecutivos. A diferencia del procesamiento de reglas generales (empleado para afirmar nuevos hechos a partir de otros hechos, cf. motor de inferencia ) que generalmente se basa en técnicas de retroceso , los algoritmos de análisis de registros de eventos suelen ser voraces ; por ejemplo, cuando se dice que ha ocurrido un compuesto, este hecho nunca se revoca como podría hacerse en un algoritmo basado en retroceso.
Se han propuesto varios mecanismos para el análisis de registros de eventos: autómatas de estados finitos , redes de Petri , métodos procedimentales (ya sea basados en un lenguaje de programación imperativo o en un lenguaje de programación orientado a objetos), una modificación del algoritmo de búsqueda de cadenas de Boyer-Moore y redes temporales simples .
Véase también
Referencias
- Tecnología de sistemas operativos
- Gestión de redes
- Monitores del sistema
- Sistemas de gestión
- Gestión de sistemas