Overview
This is where some dependency between hosts might be useful. With dependency set notifications of the dependants could be withheld and only the notification for the root problem sent.
While Zabbix does not support dependencies between hosts directly, they may be defined with another, more flexible method - trigger dependencies. A trigger may have one or more triggers it depends on.
So in our simple example we open the server trigger configuration form and set that it depends on the respective trigger of the router. With such dependency the server trigger will not change state as long as the trigger it depends on is in ‘PROBLEM’ state - and thus no dependant actions will be taken and no notifications sent.
If both the server and the router are down and dependency is there, Zabbix will not execute actions for the dependent trigger.
Actions on dependent triggers will not be executed if the trigger they depend on:
changes its state from ‘PROBLEM’ to ‘UNKNOWN’
is disabled, has disabled item or disabled item host
Note that “secondary” (dependent) trigger in the above-mentioned cases will not be immediately updated. While parent trigger is in PROBLEM state, it’s dependants may report values, which we cannot trust. Thus, dependent trigger will only be re-evaluated, and change it’s state, only after parent trigger is in OK state and we have received trusty metrics.
Also:
Trigger dependency may be added from any host trigger to any other host trigger, as long as it wouldn’t result in a circular dependency.
Trigger dependency may be added from a template to a template. If a trigger from template A depends on a trigger from template B, template A may only be linked to a host (or another template) together with template B, but template B may be linked to a host (or another template) alone.
Trigger dependency from a host trigger to a template trigger may not be added.
Configuration
To define a dependency, open the Dependencies tab in a trigger . Click on Add in the ‘Dependencies’ block and select one or more triggers that our trigger will depend on.
Click Update. Now the trigger has an indication of its dependency in the list.
Example of several dependencies
For example, a Host is behind a Router2 and the Router2 is behind a Router1.
If Router1 is down, then obviously Host and Router2 are also unreachable yet we don’t want to receive three notifications about Host, Router1 and Router2 all being down.
So in this case we define two dependencies:
'Router2 is down' trigger depends on 'Router1 is down' trigger
Zabbix performs this check recursively. If Router1 or Router2 is unreachable, the Host trigger won’t be updated.