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

Обзор

Глобальная корреляция событий позволяет охватить все метрики, отслеживаемые 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 и т. п.), а также по возможности дополнительно сужать совпадение по узлу сети или группе узлов сети.
  • Избегайте использования распространённых имён тегов, которые могут в итоге использоваться разными конфигурациями корреляции.
  • Ограничивайте количество правил корреляции только теми, которые вам действительно нужны.

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

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

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

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

correlation\_rule.png

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

Параметр Описание
Name Уникальное имя правила корреляции.
Type of calculation Доступны следующие варианты вычисления условий:
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 Выберите условие для корреляции событий.
Note: если не указано условие старого события, могут быть сопоставлены и закрыты все старые события. Аналогично, если не указано условие нового события, могут быть сопоставлены и закрыты все новые события.
Доступны следующие условия:
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 символов не являются специфичными, это также может привести к появлению похожих тегов событий для несвязанных проблем.

Пример

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

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

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