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 и т. п.), а также по возможности дополнительно сужать совпадение по узлу сети или группе узлов сети.
- Избегайте использования общих имен тегов, которые могут в итоге использоваться разными конфигурациями корреляции.
- Ограничивайте количество правил корреляции только действительно необходимыми.
См. также: известные проблемы.
Конфигурация
Чтобы настроить правила корреляции событий глобально:
- Перейдите в Сбор данных > Корреляция событий
- Нажмите Создать корреляцию событий справа (или на имя корреляции, чтобы редактировать существующее правило)
- Введите параметры правила корреляции в форме

Все обязательные поля ввода отмечены красной звездочкой.
| Параметр | Описание |
|---|---|
| Имя | Уникальное имя правила корреляции. |
| Тип вычисления | Доступны следующие варианты вычисления условий: И - должны выполняться все условия Или - достаточно выполнения одного условия И/Или - И для разных типов условий и Или для одинаковых типов условий Пользовательское выражение - заданная пользователем формула вычисления для оценки условий действия. Она должна включать все условия (представленные заглавными буквами A, B, C, ...) и может содержать пробелы, табуляции, скобки ( ), and (с учетом регистра), or (с учетом регистра), not (с учетом регистра). |
| Условия | Список условий. Подробнее о настройке условия см. ниже. |
| Описание | Описание правила корреляции. |
| Операции | Установите флажок у операции, которую нужно выполнить при корреляции события. Доступны следующие операции: Закрыть старые события - закрывать старые события при возникновении нового события. При использовании операции Закрыть старые события всегда добавляйте условие на основе старого события, иначе могут быть закрыты все существующие проблемы. Закрыть новое событие - закрывать новое событие при его возникновении. Предупреждение! Не оставляйте условия старого/нового события пустыми при использовании Закрыть старые события/Закрыть новое событие. Если выбрать операцию Закрыть старые события без добавления условия, соответствующего старому событию, Zabbix может сопоставить все существующие старые события и закрыть их. Всегда добавляйте явное условие старого события (например, Имя тега старого события или Пара тегов события) при использовании Закрыть старые события. Например, правило, использующее только Условие нового события и операцию Закрыть старые события, будет сопоставлять все старые события, которые соответствуют (отсутствующим) критериям старого события, фактически закрывая старые проблемы. |
| Включено | Если установить этот флажок, правило корреляции будет включено. |
Чтобы настроить параметры нового условия, нажмите
в блоке Условия.
Откроется всплывающее окно, где можно редактировать параметры условия.

| Параметр | Описание |
|---|---|
| Новое условие | Выберите условие для корреляции событий. Обратите внимание, что если не указано условие старого события, могут быть сопоставлены и закрыты все старые события. Аналогично, если не указано условие нового события, могут быть сопоставлены и закрыты все новые события. Доступны следующие условия: Имя тега старого события - укажите имя тега старого события для сопоставления. Имя тега нового события - укажите имя тега нового события для сопоставления. Новая группа узлов сети события - укажите группу узлов сети нового события для сопоставления. Пара тегов события - укажите имя тега нового события и имя тега старого события для сопоставления. В этом случае совпадение будет, если совпадают значения тегов в обоих событиях. Имена тегов совпадать не обязаны. Этот вариант полезен для сопоставления значений времени выполнения, которые могут быть неизвестны на момент настройки (см. также Пример). Значение тега старого события - укажите имя и значение тега старого события для сопоставления, используя следующие операторы: равно - имеет значение тега старого события не равно - не имеет значения тега старого события содержит - содержит строку в значении тега старого события не содержит - не содержит строку в значении тега старого события Значение тега нового события - укажите имя и значение тега нового события для сопоставления, используя следующие операторы: равно - имеет значение тега нового события не равно - не имеет значения тега нового события содержит - содержит строку в значении тега нового события не содержит - не содержит строку в значении тега нового события |
Поскольку возможна неправильная настройка, если похожие теги событий могут создаваться для несвязанных проблем, пожалуйста, ознакомьтесь со случаями, описанными ниже!
- Фактические теги и значения тегов становятся видимыми только при срабатывании триггера. Если используемое регулярное выражение некорректно, оно без уведомления заменяется строкой *UNKNOWN*. Если исходное событие проблемы со значением тега *UNKNOWN* было пропущено, впоследствии могут появиться события OK с тем же значением тега *UNKNOWN*, которые могут закрыть события проблем, которые не должны были быть закрыты.
- Если пользователь использует макрос {ITEM.VALUE} без функций макросов в качестве значения тега, применяется ограничение в 255 символов. Если сообщения журнала длинные, а первые 255 символов не являются специфичными, это также может привести к появлению похожих тегов событий для несвязанных проблем.
Пример
Остановите повторяющиеся события проблем с одного и того же сетевого порта.

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