lyl801013 发表于 2019-1-18 11:31:18

Zabbix 2.4——trigger详解

前言:我们都知道zabbix基本配置就是 hosts =》 items =》triggers =》 actions =》 media =》Email,这应该算是一个基本的zabbix报警实现,那zabbix如何添加trigger就是个必须掌握的技能了。
  

* 一、Zabbix的Trigger添加
  

* 二、Trigger的创建
  

* 三、表达式
  

* 四、依赖关系
  

* 五、告警级别
  

* 六、单位符号
  

一、zabbix的Trigger添加
=== 首先当然是先创建一个Hosts,并确保能够正常监控,并创建一个可用的Items
http://s5.运维网.com/wyfs02/M02/82/19/wKiom1dL0R7B3wVwAADExMehh2w563.png
  === 然后就是点击创建triggers了
http://s2.运维网.com/wyfs02/M02/82/19/wKiom1dLz8bRHrctAADUETWlklk256.png
  Configuration——》Host——》Create Trigger
  

  二、Trigger的创建
http://s1.运维网.com/wyfs02/M01/82/1B/wKiom1dL2feAJUUJAABZ_pdVVeg099.pngTrigger的各选项含义:
  * Name:设置Trigger的名称。
  名称中可支持使用宏Macros来定义。{HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {ITEM.VALUE}, {ITEM.LASTVALUE} and {$MACRO}。
  还可以使用$1,$2,$3...$9表示位置参数使用。
  * Expression:Trigger的表达式
  * Multiple PROBLEM events generation:设置该选项可以在触发器产生problem的时候,触发一个事件(一般不勾选)
  * Description:对这个Trigger的描述信息,例如联系人信息,触发器说明等
      * URL:该URL可以作为Monitoring ——》 Trigger 中的一个链接来点击。该参数还支持一个Macros(TRIGGER.ID)
  * Severity:设置trigger被触发时的告警级别
  * Enabled:选择是否启用
  

  三、表达式
  Trigger最重要的就是它的表达式的写法:
  语法格式:{:.(parameter)}
  ① server:表达式的作用于哪个 host 上,默认当然是你选择的host了
  ② key:item中填写的监控项
  ③ function:Trigger function 是zabbix内置的触发器函数,可收集返回值、当前时间和其他参数
  ④ parameter:parameter是function的参数,具体设置成什么,需要看使用哪种function。(后面会加一个function的博客做为笔记查询)
  例:avg(sec|#num,)
  说明:大多数函数都支持 sec | #num。
  sec:最近多少秒内收集的值
  #num:最近多少次收集的值。(有的founction可能为最近第几次收集的值,如last)
  time_shift:类似偏移量,多少秒之前收集的值
  avg(3600,86400)一天前的一个小时内收集的值的平均值
  ⑤ operator:运算符号,支持如下
  算数运算符:+、-、*、/
  比较运算符:=、(不等于)
  连接运算符:and(与)、or(或)、not(非)、-(负数)
  注:not、and和or运算符号是区分字符大小写,并且必须小写。
  所有运算符中,除了 - 和 not 都是从左至右
   ⑥ constant:常量,通常是一个数字
  

  例如:
  {10.6.3.90:vfs.file.md5sum.diff()}=1
  该表达式主要是用来判断“主机密码文件是否有被修改”
  

  四、依赖关系
http://s1.运维网.com/wyfs02/M02/82/1C/wKioL1dL-v2gPI6bAABXijMtI9g762.pngDependencies:
         有这样一个场景,主机a依赖于主机b,如果主机b的网络出现故障,则zabbix server会同时收到 a 和 b 的故障告警信息。但实际上只有 b 是故障的。
          因此,添加依赖关系后,其他主机故障并不会导致多态主机的trigger被触发。


依赖要点:
         (1) 触发关系可从任何主机添加到其他主机触发器,只要它不被陷入死循环即可
         (2) 触发关系可以从模板到模板的方式添加。但其对应关系需要理清楚。
         (3) 触发关系也可以从template trigger 到 host trigger。当template trigger 到 host trigger,将使得 template中的其他trigger也依赖于host。
         (4) 可以不添加从host trigger到template trigger


添加之后就会显示 depends on:
http://s4.运维网.com/wyfs02/M01/82/1C/wKioL1dL-keydwxcAABmBfdesKs597.png


五、告警级别
http://s3.运维网.com/wyfs02/M01/82/1E/wKiom1dL-7PQvdfMAAC5tcNSlR4167.png
用户可自定义修改Trigger的告警级别和颜色:
         Administration ——》 General ——》 Tigger severities
告警级别说明:
           Not classified——Grey:                   没有告警    《——》灰色
  Information——Light green:               消息      《——》淡绿
  Warning——Yellow:                        警告      《——》黄色
  Average——Orange:                        平均问题    《——》橘色
  High——red:                              高等级告警《——》红色
  Disaster——Bright red:                   灾难      《——》亮红色


六、单位符号
我们在Trigger表达式中经常要写大段的时间或字节大小,但如果添加了单位符号,则无需将值计算到最小值单位。
时间单位:
  s:秒
  m:分钟
  h:小时
  d:天
  w:周
  时间单位使用对象:
  1、trigger expression
  2、内建item,zabbix
  3、aggreeagte checks 汇总检查
  前缀符号:显示单位,默认是Bps,这些计量单位应该很好理解。
  K:kilo,   公斤,2^10
  M:mega,百万,2^20
  G:Giga, 千兆,2^30
  T:Tera,兆兆,2^40
  注:如果item的值使用的是B,则单位换算为1k=1000,否则,单位换算为1K=1024。
  

  个人见解:个人觉得Zabbix Trigger的核心就是Trigger表达式,只要掌握这个,其他的功能不必太过追求。Linux要学的东西太多,如果要把每个知识点都掌握全,那你学习的速度很难跟各种服务版本迭代的速度。掌握自己需要的,放弃一些不必要的,也是一种学习方法吧。





页: [1]
查看完整版本: Zabbix 2.4——trigger详解