有时候一台主机的可用性依赖于另一台主机。如果一台路由器宕机,则路由器后端的服务器将变得不可用。如果这两者都设置了触发器,你可能会收到关于两个主机宕机的通知,然而只有路由器是真正故障的。
这就是主机之间某些依赖关系可能有用的地方,设置依赖关系的通知可能会被抑制,而只发送根本问题的通知。
虽然Zabbix不支持主机之间的直接依赖关系,但是它们可以定义另外一种更加灵活的方式 - 触发器依赖关系。一个触发器可以有一个或多个依赖的触发器。
因此在我们简单示例中,我们打开服务器触发器配置的窗口,并设置它依赖于路由器的相应触发器。有了这样的依赖性,只要它所依赖的触发器处于“异常”状态,服务器触发器就不会改变状态,因此不会执行依赖的动作,也不会发送通知。
如果服务器和路由器都宕机且有依赖关系,Zabbix将不执行依赖触发器的动作。
依赖触发器上的动作不会被执行,如果触发器依赖于:
请注意,上述情况下的“次要”(依赖)触发器不会立即更新。
另外:
若要定义依赖关系,在触发器配置表格打开依赖关系标签。单击“依赖关系”块中的 添加 ,并选择触发器将依赖的一个或多个触发器。
点击 更新,现在列表中触发器有了依赖性标示。
例如,主机位于路由器2后面,路由器2在路由器1后面。
如果路由器1宕机,显然主机和路由器2也不可达,然而我们不想收到主机、路由器1和路由器2都宕机的3条通知。
因此,在这种情况下我们定义了两个依赖关系:
在改变“主机宕机”触发器的状态之前,Zabbix将会检查相应触发器的依赖关系,如果找到,并且一个触发器处于“异常”状态,则触发器状态不会发生改变,因此不会执行动作,也不会发送通知。
Zabbix递归执行此检查,如果路由器1或路由器2是不可达的状态,那么主机触发器则不会更新。