Введение
В информатике мониторинг событий — это процесс сбора, анализа и оповещения заинтересованных сторон о наступлении событий, таких как процессы операционной системы, активные правила базы данных и операторы-люди. Источниками этих событий могут быть любые программные или аппаратные компоненты, включая операционные системы, системы управления базами данных, прикладное программное обеспечение и процессоры. Для мониторинга событий может использоваться база данных временных рядов.
In computer science, event monitoring is the process of collecting, analyzing, and signaling event occurrences to subscribers such as operating system processes, active database rules as well as human operators. These event occurrences may stem from arbitrary sources in both software or hardware such as operating systems, database management systems, application software and processors. Event monitoring may use a time series database.
Основные понятия
Мониторинг событий использует логическую шину для передачи сообщений о событиях от источников к подписчикам, где источники событий оповещают подписчиков о возникновении событий, а подписчики получают эти сообщения. Шина событий может быть распределена между набором физических узлов, таких как независимые компьютерные системы. Типичные примеры шин событий можно найти в графических системах, таких как X Window System и Microsoft Windows, а также в инструментах разработки, таких как SDT. Сбор событий – это процесс сбора сообщений о событиях в фильтруемый журнал событий для последующего анализа. Фильтруемый журнал событий представляет собой набор зарегистрированных событий, которые могут быть полезны в будущем; это подразумевает, что сообщения о событиях могут быть удалены из фильтруемого журнала, если они потеряют свою актуальность. Анализ журнала событий – это процесс анализа фильтруемого журнала для агрегации сообщений о событиях или для определения, следует ли оповещать о конкретном событии. Сигнализация событий – это процесс отправки сообщений о событиях по шине событий. Объект, подвергаемый мониторингу, называется контролируемым объектом; например, приложение, операционная система, база данных, аппаратное обеспечение и т.д. могут быть контролируемыми объектами. Контролируемый объект должен быть оснащен датчиками событий для обеспечения мониторинга, то есть объект должен быть инструментирован датчиками событий, чтобы стать контролируемым объектом. Датчики событий – это сенсоры, которые отправляют сообщения о событиях при их возникновении. При мониторинге необходимо учитывать эффект вмешательства (влияние мониторинга на систему).
Наблюдаемые объекты и эффект зонда
Как обсуждается Гайтом, наблюдение за объектом изменяет его поведение. Особенно это проявляется в любых параллельных системах, где процессы могут выполняться одновременно, создавая специфическую проблему. Всякий раз, когда в систему вводятся сенсоры, порядок выполнения процессов может измениться. Это может привести к проблемам, например, при локализации неисправности: мониторинг системы может изменить её поведение таким образом, что неисправность не вызовет сбой, то есть неисправность может быть замаскирована самим процессом мониторинга. Эффект зонда – это разница в поведении между наблюдаемым объектом и его неинструментированным аналогом. Согласно Шютцу, эффект зонда можно избежать, компенсировать или игнорировать. В критически важных системах реального времени, где важна своевременность (то есть способность системы соблюдать временные ограничения, такие как сроки выполнения), избежание – единственный приемлемый вариант. Например, если мы инструментируем систему для тестирования, а затем удаляем инструменты перед поставкой, это обесценивает результаты большинства тестов, основанных на работе системы в целом. В менее критичных системах реального времени (например, медиа-системах) компенсация может быть допустима, например, при тестировании производительности. В непараллельных системах игнорирование эффекта зонда допустимо, поскольку поведение не зависит от порядка выполнения.
Анализ журнала событий
Анализ журналов событий известен как композиция событий в активных базах данных, распознавание хроник в искусственном интеллекте и как оценка логики реального времени в системах реального времени. По сути, анализ журналов событий используется для сопоставления с образцами, фильтрации событий и агрегирования событий в составные события. Обычно применяются стратегии динамического программирования из области алгоритмов для сохранения результатов предыдущих анализов для последующего использования, поскольку, например, один и тот же образец может быть сопоставлен с одними и теми же событиями в нескольких последовательных процессах анализа. В отличие от общей обработки правил (используемой для вывода новых фактов из других фактов, см. механизм вывода), которая обычно основана на методах возврата, алгоритмы анализа журналов событий, как правило, жадные; например, когда установлено, что составное событие произошло, этот факт никогда не отменяется, как это может быть сделано в алгоритме, основанном на возврате. Для анализа журналов событий было предложено несколько механизмов: конечные автоматы, сети Петри, процедурные (основанные либо на императивном языке программирования, либо на объектно-ориентированном языке программирования), модификация алгоритма поиска подстроки Бойера — Мура и простые временные сети.