Глобальная корреляция событий

Обзор

Глобальная корреляция событий позволяет охватывать все метрики, отслеживаемые Zabbix, и создавать корреляции.

Можно сопоставлять события, созданные совершенно разными триггерами, и применять ко всем ним одни и те же операции. Создавая интеллектуальные правила корреляции, вы фактически можете избавить себя от тысяч повторяющихся уведомлений и сосредоточиться на первопричинах проблемы!

Глобальная корреляция событий — это мощный механизм, который позволяет отказаться от логики решения проблем, основанной на одном триггере. До сих пор одно событие о проблеме создавалось одним триггером, и для устранения проблемы мы зависели от этого же триггера. Мы не могли устранить проблему, созданную одним триггером, с помощью другого триггера. Но с корреляцией событий на основе тегирования событий это возможно.

Например, триггер журнала может сообщать о проблемах приложения, а триггер опроса — о том, что приложение запущено и работает. Используя теги событий, вы можете пометить триггер журнала как status:down, а триггер опроса — как status:up. Затем в глобальном правиле корреляции вы можете связать эти триггеры и назначить этой корреляции соответствующую операцию, например закрытие старых событий.

В другом случае глобальная корреляция может выявлять похожие триггеры и применять к ним одну и ту же операцию. Что, если бы мы могли получать только один отчет о проблеме для неполадки сетевого порта? Нет необходимости сообщать о них всех. Это также возможно с помощью глобальной корреляции событий.

Глобальная корреляция событий настраивается в правилах корреляции. Правило корреляции определяет, как новые события о проблемах сопоставляются с существующими событиями о проблемах и что делать в случае совпадения (закрыть новое событие, закрыть совпавшие старые события путем генерации соответствующих событий OK). Если проблема закрыта глобальной корреляцией, это отображается в столбце Info на странице Monitoring > Problems.

Настройка глобальных правил корреляции доступна только пользователям уровня Super Admin.

Корреляцию событий необходимо настраивать очень тщательно, так как она может негативно повлиять на производительность обработки событий или, при неверной настройке, закрыть больше событий, чем предполагалось (в худшем случае могут быть закрыты даже все события о проблемах).

Чтобы безопасно настроить глобальную корреляцию, соблюдайте следующие важные рекомендации:

  • Уменьшайте область корреляции. Всегда задавайте уникальный тег для нового события, которое сопоставляется со старыми событиями, и используйте условие корреляции New event tag name.
  • Добавляйте явное условие для старого события при использовании Close old events. Всегда добавляйте как минимум одно условие Old event (например, Old event tag name, Old event tag value или Event tag pair) при выборе Close old events — в противном случае правило может сопоставить и закрыть не связанные между собой существующие события о проблемах (в худшем случае — все проблемы). Для сопоставления значений во время выполнения предпочтительно использовать Event tag pair (host:port, session id и т. д.), а при возможности дополнительно сужать совпадение по узлу сети или группе узлов сети.
  • Избегайте использования общих имен тегов, которые могут применяться в разных конфигурациях корреляции.
  • Ограничьте количество правил корреляции только теми, которые действительно необходимы.

См. также: известные проблемы.

Конфигурация

Чтобы глобально настроить правила корреляции событий:

  1. Перейдите в Сбор данных > Корреляция событий.
  2. Нажмите Создать корреляцию событий справа (или на имя корреляции, чтобы изменить существующее правило).
  3. Введите параметры правила корреляции в форме.

correlation\_rule.png

Все обязательные поля ввода отмечены красной звездочкой.

Параметр Описание
Имя Уникальное имя правила корреляции.
Тип вычисления Доступны следующие варианты вычисления условий:
And - должны быть выполнены все условия
Or - достаточно выполнения одного условия
And/Or - AND для разных типов условий и OR для одинакового типа условий
Custom expression - пользовательская формула вычисления для оценки условий действия. Она должна включать все условия (представленные заглавными буквами A, B, C, ...) и может содержать пробелы, табуляции, скобки ( ), and (с учетом регистра), or (с учетом регистра), not (с учетом регистра).
Conditions Список условий. Подробности по настройке условия см. ниже.
Description Описание правила корреляции.
Operations Отметьте флажок операции, которую нужно выполнить, когда событие скоррелировано. Доступны следующие операции:
Close old events - закрыть старые события при возникновении нового события. Всегда добавляйте условие на основе старого события при использовании операции Close old events, иначе могут быть закрыты все существующие проблемы.
Close new event - закрыть новое событие при его возникновении.

Warning!
Не оставляйте условия старого/нового события пустыми при использовании Close old events/Close new event. Если вы выберете операцию Close old events без добавления условия, соответствующего старому событию, Zabbix может сопоставить все существующие старые события и закрыть их. Всегда добавляйте явное условие старого события (например, Old event tag name или Event tag pair) при использовании Close old events. Например, правило, которое использует только New event condition и операцию Close old events, будет сопоставлять все старые события, которые соответствуют (отсутствующим) критериям старого события, - фактически закрывая старые проблемы.
Enabled Если вы отметите этот флажок, правило корреляции будет включено.

Чтобы настроить подробности нового условия, нажмите в блоке Conditions. Откроется всплывающее окно, где можно изменить параметры условия.

Параметр Описание
New condition Выберите условие для корреляции событий.
Обратите внимание, что если не указано условие старого события, могут быть сопоставлены и закрыты все старые события. Аналогично, если не указано условие нового события, могут быть сопоставлены и закрыты все новые события.
Доступны следующие условия:
Old event tag name - укажите имя тега старого события для сопоставления.
New event tag name - укажите имя тега нового события для сопоставления.
New event host group - укажите группу узлов сети нового события для сопоставления.
Event tag pair - укажите имя тега нового события и имя тега старого события для сопоставления. В этом случае совпадение будет, если совпадают значения тегов в обоих событиях. Имена тегов могут не совпадать.
Этот вариант полезен для сопоставления значений во время выполнения, которые могут быть неизвестны на момент настройки (см. также Example).
Old event tag value - укажите имя тега старого события и значение для сопоставления, используя следующие операторы:
equals - имеет значение тега старого события
does not equal - не имеет значения тега старого события
contains - содержит строку в значении тега старого события
does not contain - не содержит строку в значении тега старого события
New event tag value - укажите имя тега нового события и значение для сопоставления, используя следующие операторы:
equals - имеет значение тега нового события
does not equal - не имеет значения тега нового события
contains - содержит строку в значении тега нового события
does not contain - не содержит строку в значении тега нового события

Поскольку возможна неправильная настройка, а похожие теги событий могут создаваться для не связанных проблем, пожалуйста, ознакомьтесь с приведенными ниже случаями!

  • Фактические теги и значения тегов становятся видимыми только при срабатывании триггера. Если используемое регулярное выражение некорректно, оно без предупреждения заменяется строкой *UNKNOWN*. Если начальное проблемное событие со значением тега *UNKNOWN* пропущено, могут появиться последующие события OK с тем же значением тега *UNKNOWN*, которые могут закрыть проблемные события, которые не должны были быть закрыты.
  • Если пользователь использует макрос {ITEM.VALUE} без функций макросов в качестве значения тега, применяется ограничение в 255 символов. Когда сообщения журнала длинные и первые 255 символов не содержат специфики, это также может привести к появлению похожих тегов событий для не связанных проблем.

Пример

Останавливайте повторяющиеся события проблем с одного и того же сетевого порта.

Это глобальное правило корреляции будет сопоставлять проблемы, если значения тегов host и port присутствуют у триггера и совпадают в исходном событии и новом.

Операция закроет новые события проблем на том же сетевом порту, оставив открытым только исходную проблему.