Временами доступность одного узла сети зависит от другого. Сервер, который находится за каким-нибудь роутером будет недоступным, если сам роутер станет недоступным. При наличии настроенных триггеров на обоих устройствах, вы можете получить оповещения сразу для обоих недоступных узлов сети - в то время как виноват только роутер.
В этом случае некоторая зависимость между узлами сети может оказаться очень полезной. С наличием зависимости, набор оповещений о зависимых проблемах, может быть не отправлен и будет отправлено только одно оповещение о корне проблемы.
Хотя Zabbix не поддерживает зависимости между узлами сети напрямую, с другой стороны они могут быть заданы с помощью другого более гибкого метода - зависимостями между триггерами. Триггер может иметь один или более триггеров зависимых от него.
Таким образом в нашем простом примере мы откроем форму настройки триггера и укажем этому триггеру зависимость от триггера роутера. При такой зависимости зависящий триггер сервера от триггера роутера не изменит своё состояние пока триггер роутера находится в состоянии 'ПРОБЛЕМА' - и следовательно зависимые действия не будут предприняты и оповещения не будут отправлены.
Если и сервер, и роутер станут недоступными и зависимость будет настроена, Zabbix не выполнит действия для зависимого триггера.
Действия на зависимые триггера не будут выполняться, если триггер от которого они зависят:
Обратите внимание, что "второй" (зависимый) триггер во всех вышеупомянутых случаях не будет обновлен незамедлительно.
Также:
Для того чтобы задать зависимость, откройте диалог настройки триггера. Далее нажмите на Добавить в 'Новая зависимость' и выберите один или несколько триггеров от которых будет зависеть наш триггер.
Нажмите Обновить. Теперь триггер имеет в списке индикацию на свою зависимость.
Например, узел сети Хост находится за маршрутизатором Роутер2, а Роутер2 находится за Роутер1.
Если Роутер1 недоступен, то очевидно, что и Хост и Роутер2 недоступны. И мы не хотим получать три оповещения с информацией о недоступности Хост, Роутер1 и Роутер2.
Для этого случая, мы зададим эти зависимости:
триггер 'Хост недоступен' зависит от триггера 'Роутер2 недоступен'
триггер 'Роутер2 недоступен' зависит от триггера 'Роутер1 недоступен'
Перед изменением состояния триггера 'Хост недоступен', Zabbix проверит зависимости у соответствующих триггеров. Если они будут найдены, и один из триггеров находится в состоянии ПРОБЛЕМА, то состояние триггера не будет изменено и, следовательно, действия не будут выполнены и оповещения не будут отправлены.
Zabbix выполняет эту проверку рекурсивно. Если Роутер1 или Роутер2 недоступен, то триггер у Хост не будет изменен.