Глобальная корреляция событий
Обзор
Глобальная корреляция событий позволяет охватить все метрики, отслеживаемые Zabbix, и создавать корреляции.
Можно сопоставлять события, созданные совершенно разными триггерами, и применять к ним одинаковые операции. Создавая интеллектуальные правила корреляции, можно избавить себя от тысяч повторяющихся уведомлений и сосредоточиться на первопричинах проблемы!
Глобальная корреляция событий — это мощный механизм, который позволяет отказаться от логики, основанной на связи одной проблемы с одним триггером. До сих пор одно событие проблемы создавалось одним триггером, и для разрешения проблемы требовался тот же триггер. Нельзя было разрешить проблему, созданную одним триггером, с помощью другого триггера. Но корреляция событий на основе тегов событий позволяет это сделать.
Например, триггер журнала может сообщать о проблемах приложения, а триггер опроса — о том, что приложение работает. Используя теги событий, можно присвоить триггеру журнала тег status:down, а триггеру опроса — тег status:up. Затем в правиле глобальной корреляции можно связать эти триггеры и назначить для этой корреляции соответствующую операцию, например закрытие старых событий.
В другом случае глобальная корреляция может выявлять похожие триггеры и применять к ним одну и ту же операцию. Что, если получать только один отчет о проблеме для каждой проблемы сетевого порта? Нет необходимости сообщать обо всех таких проблемах. Глобальная корреляция событий также позволяет это сделать.
Глобальная корреляция событий настраивается в правилах корреляции. Правило корреляции определяет, как новые события проблем сопоставляются с существующими событиями проблем и что делать при совпадении (закрыть новое событие или закрыть совпавшие старые события, создав соответствующие события OK). Если проблема закрыта с помощью глобальной корреляции, это отображается в столбце Информация раздела Мониторинг > Проблемы.
Настраивать правила глобальной корреляции могут только пользователи уровня «Суперадминистратор».
Корреляцию событий необходимо настраивать очень внимательно, поскольку она может отрицательно повлиять на производительность обработки событий или, при неправильной настройке, закрыть больше событий, чем предполагалось (в худшем случае могут быть закрыты даже все события проблем).
Чтобы безопасно настроить глобальные правила корреляции, соблюдайте следующие важные рекомендации:
- Уменьшайте область корреляции. Всегда задавайте уникальный тег для нового события, сопоставляемого со старыми событиями, и используйте условие корреляции Имя тега нового события.
- Добавляйте явное условие для старого события при использовании Закрыть старые события. Всегда добавляйте хотя бы одно условие Старое событие (например, Имя тега старого события, Значение тега старого события или Пара тегов события) при выборе Закрыть старые события; в противном случае правило может сопоставить и закрыть несвязанные существующие события проблем (в худшем случае — все проблемы). Для сопоставления значений, определяемых во время выполнения (host:port, идентификатор сеанса и т. д.), предпочтительно использовать Пару тегов события, а при возможности дополнительно ограничивать сопоставление узлом сети или группой узлов сети.
- Избегайте использования общих имен тегов, которые могут в итоге применяться в разных конфигурациях корреляции.
- Ограничивайте количество правил корреляции только теми правилами, которые действительно необходимы.
См. также: известные проблемы.
Конфигурация
Чтобы глобально настроить правила корреляции событий:
- Перейдите в Сбор данных > Корреляция событий.
- Нажмите Создать корреляцию событий справа (или на имя корреляции, чтобы изменить существующее правило).
- Введите параметры правила корреляции в форме.

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