# 3 Зависимости триггеров

#### Обзор

Временами доступность одного узла сети зависит от другого. Сервер,
который находится за каким-нибудь роутером будет недоступным, если сам
роутер станет недоступным. При наличии настроенных триггеров на обоих
устройствах, вы можете получить оповещения сразу для обоих недоступных
узлов сети - в то время как виноват только роутер.

В этом случае некоторая зависимость между узлами сети может оказаться
очень полезной. С наличием зависимости, набор оповещений о зависимых
проблемах, может быть не отправлен и будет отправлено только одно
оповещение о корне проблемы.

Хотя Zabbix не поддерживает зависимости между узлами сети напрямую, с
другой стороны они могут быть заданы с помощью другого более гибкого
метода - зависимостями между триггерами. Триггер может иметь один или
более триггеров зависимых от него.

Таким образом в нашем простом примере мы откроем форму настройки
триггера и укажем этому триггеру зависимость от триггера роутера. При
такой зависимости зависящий триггер сервера от триггера роутера не
изменит своё состояние пока триггер роутера находится в состоянии
'Проблема' - и следовательно зависимые действия не будут предприняты и
оповещения не будут отправлены.

Если и сервер, и роутер станут недоступными и зависимость будет
настроена, Zabbix не выполнит действия для зависимого триггера.

Действия на зависимые триггера не будут выполнены, если триггер от
которого они зависят:

-   меняет свое состояние с 'ПРОБЛЕМА' на 'НЕИЗВЕСТНО'
-   закрыт при помощи функций связанных со временем
-   решен значением эдемента данных, который не участвует в зависимом
    триггере
-   деактивирован, имеет деактивированный элемент данных или узел сети
    элемента данных деактивирован

Обратите внимание, что "второй" (зависимый) триггер в вышеупомянутых
случаях не будет обновлён моментально.

Также:

-   Зависимость триггера может быть добавлена от любого триггера узла
    сети к триггеру любого другого узла сети, пока это не приведет к
    циклической зависимости.
-   Зависимость триггера может быть добавлена от шаблона к шаблону. Если
    триггер из шаблона А зависит от триггера из шаблона B, то шаблон A
    может быть соединен с узлом сети (или с другим шаблоном) только
    вместе с шаблоном B, но шаблон B может быть соединен с узлом сети
    (или с другим шаблоном) в одиночку.
-   Зависимость триггера может быть добавлена от шаблонного триггера к
    триггеру узла сети. В этом случае, соединение шаблона с узлом сети
    создаст триггер у узла сети, который будет зависеть от такого же
    триггера, что и шаблонный триггер. Это позволяет, например, иметь
    шаблон, в котором некоторые триггеры зависят от триггеров роутера
    (узла сети). Все узлы сети соединенные с этим шаблоном будут
    зависеть от этого конкретного роутера.
-   Зависимость триггера узла сети от шаблонного триггера не может быть
    добавлена.

#### Настройка

Для того чтобы задать зависимость, откройте [форму
настройки](/ru/manual/config/triggers/trigger#настройка) триггера. Далее
нажмите на *Добавить* в 'Новая зависимость' и выберите один или
несколько триггеров от которых будет зависеть наш триггер.

![](../../../../assets/ru/manual/config/triggers/dependency.png)

Нажмите *Сохранить*. Теперь триггер имеет в списке индикацию на свою
зависимость.

![](../../../../assets/ru/manual/config/triggers/dependency2.png)

##### Примеры нескольких зависимостей

Например, узел сети Хост находится за маршрутизатором Роутер2, а Роутер2
находится за Роутер1.

    Zabbix - Роутер1 – Роутер2 - Хост

Если Роутер1 недоступен, то очевидно, что и Хост и Роутер2 недоступны. И
мы не хотим получать три оповещения с информацией о недоступности Хост,
Роутер1 и Роутер2.

Для этого случая, мы зададим эти зависимости:

    триггер 'Хост недоступен' зависит от триггера 'Роутер2 недоступен'
    триггер 'Роутер2 недоступен' зависит от триггера 'Роутер1 недоступен'

Перед изменением состояния триггера 'Хост недоступен', Zabbix проверит
зависимости у соответствующих триггеров. Если они будут найдены, и один
из триггеров в находится в состоянии ПРОБЛЕМА, то состояние триггера не
будет изменено и, следовательно, действия не будут выполнены и
оповещения не будут отправлены.

Zabbix выполняет эту проверку рекурсивно. Если Роутер1 или Роутер2
недоступен, то триггер у Хост не будет изменен.
