[comment]: # ({10fa1e13-10fa1e13})
# 2. Глобальная корреляция событий  

[comment]: # ({/10fa1e13-10fa1e13})

[comment]: # ({41d0c2e3-91cbc9c1})
#### Обзор

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

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

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

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

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

Глобальная корреляция событий настраивается в **правилах корреляции**.
Правило корреляции определяет, каким образом новые события о проблемах соотносятся с существующими событиями о проблемах, и что делать в случае совпадения (закрыть новое событие, закрыть старые события, сформировав соответствующие события ОК).
Если проблема закрыта при помощи глобальной корреляции, об этом сообщается в колонке *Инфо (Info)* в *Мониторинг (Monitoring)* → *Проблемы (Problems)*.

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

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

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

-   Уменьшайте область действия корреляции.
Всегда указывайте новому событию уникальный тег, который соотносится со старыми событиями, и используйте условие корреляции *Имя тега нового события (New event tag name)*.
-   При использовании операции *Закрыть старые события (Close old events)* добавляйте явное условие для старых событий.
Всегда добавляйте как минимум одно условие для *Старого события* (например, *Имя тега старого события (Old event tag name)*, *Значение тега старого события (Old event tag value)* или *Пара тегов событий (Event tag pair)*) при выборе параметра **Закрыть старые события (Close old events)** — в противном случае правило может сопоставить и закрыть несвязанные существующие события проблем (в худшем случае, все проблемы). 
Отдавайте предпочтение типу **Пара тегов событий (Event tag pair)** для сопоставления значений во время выполнения (хост:порт, идентификатор сессии и т. д.) и дополнительно сужайте поиск по узлу сети или группе узлов сети, если это возможно.
-   Избегайте использования общих имён тегов, которые в итоге могут быть использованы разными настройками корреляций.
-   Ограничьте количество правил корреляции теми, которые вам действительно необходимы.

Смотрите также: [известные проблемы](/manual/installation/known_issues#глобальная-корреляция-событий).

[comment]: # ({/41d0c2e3-91cbc9c1})

[comment]: # ({b174f7c5-4d55e723})
#### Настройка

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

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

![correlation\_rule.png](../../../../assets/en/manual/config/event_correlation/correlation_rule.png)

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

|Параметр|Описание|
|--|--------|
|*Имя (Name)*|Уникальное имя правила корреляции.|
|*Тип вычисления*<br>*(Type of calculation)*|Для вычисления условий доступны следующие опции:<br>**И (And)** — должны быть выполнены все условия<br>**Или (Or)** — достаточно выполнения одного условия<br>**И/Или (And/Or)** — И с разными типами условий и ИЛИ с одинаковым типом условий<br>**Пользовательское выражение (Custom expression)** — введённая пользователем формула вычисления для оценки условий действия. Она должна включать в себя все условия (представленные в виде прописных букв A, B, C, …) и может включать пробелы, символы табуляции, скобки ( ), **and** (с учётом регистра), **or** (с учётом регистра), **not** (с учётом регистра).|
|*Условия*<br>*(Conditions)*|Список условий. Смотрите ниже для получения более подробных сведений по настройке условий.|
|*Описание*<br>*(Description)*|Описание правила корреляции.|
|*Операции*<br>*(Operations)*|Отметьте операции, выполняемые при успешной корреляции события. Доступны следующие операции:<br>**Закрыть старые события (Close old events)** — закрыть старые события при появлении нового события. Всегда добавляйте условие на основе старого события при использовании операции *Закрыть старые события (Close old events)*, или будут закрыты все существующие проблемы.<br>**Закрыть новое событие (Close new event)** — закрыть новое событие при его появлении.<br><br>**Warning!**<br><br><br>**Внимание!**<br>Не оставляйте условия для старых/новых событий пустыми при использовании операций *Закрыть старые события (Close old events)*/*Закрыть новое событие (Close new event)*. Если вы выберете операцию *Закрыть старые события (Close old events)* без добавления условия, соответствующего старому событию, Zabbix может сопоставить все существующие старые события и закрыть их. Всегда добавляйте явное условие для старого события (например, *Имя тега старого события (Old event tag name)* или *Пара тегов событий (Event tag pair)*) при использовании операции *Закрыть старые события (Close old events)*. Например, правило, использующее только *Условие для нового события* и операцию *Закрыть старые события (Close old events)*, будет соответствовать всем старым событиям, которые отвечают (отсутствующим) критериям старого события, фактически закрывая старые проблемы.|
|*Активировано*<br>*(Enabled)*|Если вы отметите этот параметр, правило корреляции будет активировано.|

Чтобы настроить детали нового условия, нажмите на ![](../../../../assets/en/manual/config/add_link.png) (Добавить) в блоке Условия.
Откроется всплывающее окно, где вы сможете отредактировать детали условия.

![](../../../../assets/en/manual/config/event_correlation/correlation_rule_condition.png)

|Параметр|Описание|
|--|--------|
|*Новое условие*<br>*(New condition)*|Выберите условие для корреляции событий.<br>*Обратите внимание*, если условие на старое событие не указано,  все старые события могут быть сопоставлены и затем закрыты. Точно так же, если условие на новое событие не указано, все новые события могут быть сопоставлены и затем закрыты.<br>Доступны следующие условия:<br>**Имя тега старого события (Old event tag name)** — имя тега старого события для поиска совпадения<br>**Имя тега нового события (New event tag name)** — имя тега нового события для поиска совпадения<br>**Группа узлов сети нового события (New event host group)** — группа узлов сети нового события для поиска совпадения<br>**Пара тегов событий (Event tag pair)** — имена нового тега событий и старого тега событий для поиска совпадений. В этом случае будет совпадение, если совпадают **значения** тегов в обоих событиях. *Имена* тегов не обязаны совпадать.<br>Эта опция может быть полезна для сопоставления значений в реальном времени, которые могут быть неизвестны в процессе настройки (смотрите также [Пример](/manual/config/event_correlation/global#пример))<br>**Значение тега старого события (Old event tag value)** — имя и значение тега старого события для поиска совпадения с использованием следующих операторов:<br>*равно (equals)* — имеет значение тега старого события<br>*не равно (does not equal)* — не имеет значение тега старого события<br>*содержит (contains)* — имеет соответствующую строку в значении тега старого события<br>*не содержит (does not contain)* — не имеет соответствующую строку в значении тега старого события<br>**Значение тега нового события (New event tag value)** — имя и значение тега нового события для поиска совпадения с использованием следующих операторов:<br>*равно (equals)* — имеет значение тега нового события<br>*не равно (does not equal)* — не имеет значение тега нового события<br>*содержит (contains)* — имеет соответствующую строку в значении тега нового события<br>*не содержит (does not contain)* — не имеет соответствующую строку в значении тега нового события|

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

-   Фактические теги и значения тегов становятся видны только при срабатывании триггера.
Если используемое регулярное выражение ошибочно, оно автоматически заменится на строку \*НЕИЗВЕСТНО\*.
Если изначальное событие о проблеме с \*НЕИЗВЕСТНО\* пропущено, могут появиться последующие события OK с таким же значением тега \*НЕИЗВЕСТНО\*, которые могут закрыть события о проблеме, которые они не должны были бы закрывать.
-   Если пользователь в качестве значения тега использует макрос {ITEM.VALUE} без функций макросов, то будет применяться ограничение по длине строки в 255 символов.
Когда в журнале имеются длинные сообщения и первые 255 символов не конкретизируют проблему, это может привести к одинаковым тегам событий по не связанным проблемам.

[comment]: # ({/b174f7c5-4d55e723})

[comment]: # ({7e8aa3d1-c1c16a0f})
#### Пример

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

![](../../../../assets/en/manual/config/event_correlation/correlation_example.png)

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

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

[comment]: # ({/7e8aa3d1-c1c16a0f})
