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

Все обязательные поля ввода отмечены красной звездочкой.
| Parameter | Description |
|---|---|
| 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.
Откроется всплывающее окно, в котором можно изменить параметры условия.

| Parameter | Description |
|---|---|
| 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 символов не содержат специфики, это также может привести к появлению похожих тегов событий для не связанных проблем.
Пример
Остановка повторяющихся событий о проблемах с одного и того же сетевого порта.

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