Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

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

Обзор

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

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

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

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

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

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

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

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

Также:

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

Настройка

Для того чтобы задать зависимость, откройте диалог настройки триггера. Далее нажмите на Добавить в 'Новая зависимость' и выберите один или несколько триггеров от которых будет зависеть наш триггер.

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

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

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

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

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

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

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

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

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