Введение

В информатике мониторинг событий — это процесс сбора, анализа и оповещения заинтересованных сторон о наступлении событий, таких как процессы операционной системы, активные правила базы данных и операторы-люди. Источниками этих событий могут быть любые программные или аппаратные компоненты, включая операционные системы, системы управления базами данных, прикладное программное обеспечение и процессоры. Для мониторинга событий может использоваться база данных временных рядов.

Основные понятия

Мониторинг событий использует логическую шину для передачи сообщений о событиях от источников к подписчикам, где источники событий оповещают подписчиков о возникновении событий, а подписчики получают эти сообщения. Шина событий может быть распределена между набором физических узлов, таких как независимые компьютерные системы. Типичные примеры шин событий можно найти в графических системах, таких как X Window System и Microsoft Windows, а также в инструментах разработки, таких как SDT. Сбор событий – это процесс сбора сообщений о событиях в фильтруемый журнал событий для последующего анализа. Фильтруемый журнал событий представляет собой набор зарегистрированных событий, которые могут быть полезны в будущем; это подразумевает, что сообщения о событиях могут быть удалены из фильтруемого журнала, если они потеряют свою актуальность. Анализ журнала событий – это процесс анализа фильтруемого журнала для агрегации сообщений о событиях или для определения, следует ли оповещать о конкретном событии. Сигнализация событий – это процесс отправки сообщений о событиях по шине событий. Объект, подвергаемый мониторингу, называется контролируемым объектом; например, приложение, операционная система, база данных, аппаратное обеспечение и т.д. могут быть контролируемыми объектами. Контролируемый объект должен быть оснащен датчиками событий для обеспечения мониторинга, то есть объект должен быть инструментирован датчиками событий, чтобы стать контролируемым объектом. Датчики событий – это сенсоры, которые отправляют сообщения о событиях при их возникновении. При мониторинге необходимо учитывать эффект вмешательства (влияние мониторинга на систему).

Наблюдаемые объекты и эффект зонда

Как обсуждается Гайтом, наблюдение за объектом изменяет его поведение. Особенно это проявляется в любых параллельных системах, где процессы могут выполняться одновременно, создавая специфическую проблему. Всякий раз, когда в систему вводятся сенсоры, порядок выполнения процессов может измениться. Это может привести к проблемам, например, при локализации неисправности: мониторинг системы может изменить её поведение таким образом, что неисправность не вызовет сбой, то есть неисправность может быть замаскирована самим процессом мониторинга. Эффект зонда – это разница в поведении между наблюдаемым объектом и его неинструментированным аналогом. Согласно Шютцу, эффект зонда можно избежать, компенсировать или игнорировать. В критически важных системах реального времени, где важна своевременность (то есть способность системы соблюдать временные ограничения, такие как сроки выполнения), избежание – единственный приемлемый вариант. Например, если мы инструментируем систему для тестирования, а затем удаляем инструменты перед поставкой, это обесценивает результаты большинства тестов, основанных на работе системы в целом. В менее критичных системах реального времени (например, медиа-системах) компенсация может быть допустима, например, при тестировании производительности. В непараллельных системах игнорирование эффекта зонда допустимо, поскольку поведение не зависит от порядка выполнения.

Анализ журнала событий

Анализ журналов событий известен как композиция событий в активных базах данных, распознавание хроник в искусственном интеллекте и как оценка логики реального времени в системах реального времени. По сути, анализ журналов событий используется для сопоставления с образцами, фильтрации событий и агрегирования событий в составные события. Обычно применяются стратегии динамического программирования из области алгоритмов для сохранения результатов предыдущих анализов для последующего использования, поскольку, например, один и тот же образец может быть сопоставлен с одними и теми же событиями в нескольких последовательных процессах анализа. В отличие от общей обработки правил (используемой для вывода новых фактов из других фактов, см. механизм вывода), которая обычно основана на методах возврата, алгоритмы анализа журналов событий, как правило, жадные; например, когда установлено, что составное событие произошло, этот факт никогда не отменяется, как это может быть сделано в алгоритме, основанном на возврате. Для анализа журналов событий было предложено несколько механизмов: конечные автоматы, сети Петри, процедурные (основанные либо на императивном языке программирования, либо на объектно-ориентированном языке программирования), модификация алгоритма поиска подстроки Бойера — Мура и простые временные сети.