有时,一个主机的可用性取决于另一个主机。如果路由器坏了,某个路由器后面的服务器就会变得不可访问。对于两个主机都配置了触发器,您可能会收到两个主机的通知,而只有路由器是有罪的一方。这是主机之间的一些依赖关系可能有用的地方。对于依赖项的依赖项通知可以被保留,并且只通知发送的根问题的通知。虽然Zabbix不支持直接之间的依赖关系,但他们可能会用另一种更灵活的方法来定义——触发依赖关系。触发器可能有一个或多个触发器,取决于它。因此,在我们的简单示例中,我们打开服务器触发器配置表单,并设置它依赖于路由器的相应触发器。有了这样的依赖,服务器触发器就不会改变状态,只要它所依赖的触发器处于“问题”状态,因此不会采取依赖的操作,也不会发送通知。如果服务器和路由器都是关闭的,而依赖项是存在的,那么Zabbix就不会为依赖的触发器执行操作。如果触发器依赖于触发器,则不会执行依赖触发器的操作。

例如我配置了两个触发器,一个触发器定义www.carlos.com这个HOST是否在运行中,另一个是www.carlos.com的网络是否通畅。假如网络出现故障,但是ttlsa服务器并未出现故障,我们依旧会收到这两个触发器给到的故障通知。现在的问题很明显,HOST是正常的,肯定不希望收到他的故障信息,因为它正常工作。所以在配置HOST触发器时,我们需要增加依赖关系,依赖网络是否畅通这个触发器。一旦网络出现故障,将不会出发HOST故障的通知。单个触发器可以依赖于多个触发器。

注意:一台HOST的触发器可以依赖其他HOST的触发器,但是注意不要有死循环依赖。比如A依赖B,B依赖C,C又依赖A。

依赖触发器的操作不会被执行,如果触发器依赖:

  • 将其状态从“问题”更改为“未知”
  • 在基于时间的函数的帮助下关闭
  • 由一个不涉及到依赖触发器的项的值来解析
  • 是disable,有disable的项目或残疾人项目的host

请注意,上述情况下的“二级”(从属)触发器不会立即更新。

  • 触发器依赖可以从任何主机触发器添加到任何其他主机触发器,只要它不会导致循环依赖。
  • 触发器依赖可以从模板添加到模板中。如果模板a的触发器依赖于模板B的触发器,那么模板a只能与一个主机(或另一个模板)和模板B链接在一起,但是模板B可能与一个主机(或另一个模板)连接在一起。
  • 触发器依赖可以从模板触发器添加到主机触发器。在这种情况下,将这样一个模板链接到一个主机将会创建一个主机触发器,该触发器依赖于相同的触发器模板触发器。例如,这允许有一个模板,其中一些触发器依赖于路由器(主机)触发器。与此模板链接的所有主机都将依赖于这个特定的路由器。
  • 触发从主机触发器到模板触发器的依赖性可能不会被添加。
  • 触发器依赖可以从触发器原型中添加到另一个触发器原型(在相同的低级发现规则中)或一个真正的触发器。触发器原型可能不依赖于来自不同LLD规则的触发器原型,也不依赖触发器原型创建的触发器。主机触发器原型不能依赖于模板的触发器。

zabbix触发器依赖(1)

一个模板的触发器可以依赖另外一个模板的触发器,例如模板A触发器依赖模板B触发器。一个HOST要链接A模板,那么它同时要链接A模板(因为模板A中的触发器依赖了模板B中的触发器),但是HOST可以单独链接模板B(B是被依赖)。在一个host单独链接template A,结果出现如下错误,所以别忘记了一起把template B也链接到HOST中。

zabbix触发器依赖(2)

模板中的触发器可以依赖HOST中的触发器。如果某个HOST链接这类模板,那么HOST创建的相应的触发器也同样会依赖那个HOST的触发器。举个官方的例子,某个模板中的一些触发器依赖了route/主机的触发器,凡事链接(理解为套用)了这个模板的机器都会依赖这些router/主机。说了那么多,其实就是继承了。

HOST中的触发器不能依赖模板中的触发器。

配置

编辑触发器,选择选项卡“dependencies”,点击Add,选择你需要依赖的触发器,如下图:

zabbix触发器依赖(3)

然后点击保存,可以看到触发器多了一个depend on

zabbix触发器依赖(4)

多个依赖实例

借用官方文档的示例,Host前面有个Router2,Router2前面有Router1,如下:

 
1
Zabbix - Router1 - Router2 - Host

如果Router1挂了,很明显Router2和Host连不上,我们不希望收到关于连不上Router2和HOST的通知,因此,我们定义了如下依赖关系:

 
1
2
'Host is down' trigger depends on 'Router2 is down'
trigger'Router2 is down' trigger depends on 'Router1 is down' trigger

在触发器将Host的状态改变为'Host is down'之前,它会检查host相关的依赖,这时候如果发现它依赖的触发器只要出现一个problem状态,那么当前触发器状态不会变化,这样一来action不会执行,报警通知sms/email自然也不会发送了。

zabbix会递归执行检测,如果router1或者router2有一个出现连不上,那么Host的触发器不会有任何的改变。

自学Zabbix3.6.4-触发器triggers dependencies依赖关系的更多相关文章

  1. 【循序渐进MVC】第一回——一物多用Project.json依赖关系之dependencies节点

    Project.json统一了ASP.NET vNext之前版本的packages.config.NuGet 配置(nuspec)以及项目文件(csprojs):并集成在Project.json中. ...

  2. 自学Zabbix3.6.1-触发器triggers创建

    1. 触发器概念 触发器(triggers)是什么?触发器使用逻辑表达式来评估通过item获取到得数据是处于哪种状态,item一收回数据,讲解任务交给触发器去评估状态,明白触发器是怎么一回事了把?在触 ...

  3. 自学Zabbix3.8.1.2-可视化Visualisation-Graphs自定义图表

    自学Zabbix3.8.1.2-可视化Visualisation-Graphs自定义图表 自定义图表,如名称所示,提供定制功能.虽然简单的图形可以很好地查看单个项目的数据,但是它们不提供配置功能.因此 ...

  4. 自学Zabbix3.10.2-事件通知Notifications upon events-Actions报警配置

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix3.10.2-事件通知Notifications upon events-Acti ...

  5. zabbix3.4.7触发器表达式详解

    zabbix触发器表达式详解 概述:触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下: {<server>:<key>.<functi ...

  6. 自学Zabbix3.10.1.4-事件通知Notifications upon events-媒介类型Ez Texting

    自学Zabbix3.10.1.4-事件通知Notifications upon events-媒介类型Ez Texting Ez Texting是zabbix的技术合作伙伴,主要提供短信服务,用手机注 ...

  7. 自学Zabbix3.10.1.2-事件通知Notifications upon events-媒介类型SMS

    自学Zabbix3.10.1.2-事件通知Notifications upon events-媒介类型SMS 服务器安装串口GSM短信猫之后,zabbix可以使用它来发送短信通知给管理员,如下注意事项 ...

  8. 自学Zabbix3.10.1.1-事件通知Notifications upon events-媒介类型email

    自学Zabbix3.10.1.1-事件通知Notifications upon events-媒介类型email 配置媒介Email Administration→Media types->Cl ...

  9. 自学Zabbix3.10.1-事件通知Notifications upon events-媒介类型

    自学Zabbix3.10-事件通知Notifications upon events-媒介类型 zabbix触发器到了要发送通知的情况下,需要一个中间介质来接收并传递它的消息给运维们,以往用nagio ...

随机推荐

  1. P2704 炮兵阵地

    题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图.在每一格平原地形上最 ...

  2. 小程序基于疼讯qcloud的nodejs开发服务器部署

        腾讯,疼讯,很疼. 请慎重看腾讯给出的文档,最好做一个笔记. 我只能说我能力有限,在腾讯云小程序的文档中跳了n天. 最后还是觉得记录下来,以防止我的cpu过载给烧了. 此文档是对<小程序 ...

  3. 了解python,利用python来制作日常猜拳,猜价小游戏

    初次接触python,便被它简洁优美的语言所吸引,正所谓人生苦短,python当歌.python之所以在最近几年越发的炽手可热,离不开它的一些特点: 1.易于学习:Python有相对较少的关键字,结构 ...

  4. git学习之创建版本库

    创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以 ...

  5. 十五、Hadoop学习笔记————Zookeeper的环境搭建

    linux中/opt一般用来存放应用/var目录一般用来存放日志 sample为样例文件,复制一份zoo.cfg文件 配置zoo文件,id为服务器id(整数),host为服务器的ip地址,第一个por ...

  6. CPU 虚拟化

    前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化.存储虚拟化和网络虚拟化,再细一 ...

  7. Ubuntu下删除VMware的方法

    一般我们都装的是Vmware workstation版的,所以,我们在终端下输入 sudo vmware-installer -u vmware-workstation 然后就会弹出vmware的卸载 ...

  8. 安装 Qt 及所需 gcc 等

    嫌麻烦,下载离线安装包一次性装好 Qt 及 Qt Creator (Community) Qt 安装包下载地址 http://download.qt.io/official_releases/qt/ ...

  9. 35.Linux-分析并制作环形缓冲区

    在上章34.Linux-printk分析.使用printk调试驱动里讲述了: printk()会将打印信息存在内核的环形缓冲区log_buf[]里, 可以通过dmesg命令来查看log_buf[] 1 ...

  10. php intval()和floatval()

    intval -- 获取变量的整数值 floatval -- 获取变量的浮点值 <?php $a = 26; $b = 4; $a/=$b; echo intval($a);//6 echo f ...