iutyhrg 发表于 2016-5-31 09:21:11

Zabbix 2.4——trigger详解

前言:我们都知道zabbix基本配置就是 hosts =》 items =》triggers =》 actions =》 media =》Email,这应该算是一个基本的zabbix报警实现,那zabbix如何添加trigger就是个必须掌握的技能了。
* 一、Zabbix的Trigger添加
* 二、Trigger的创建
* 三、表达式
* 四、依赖关系
* 五、告警级别
* 六、单位符号
一、zabbix的Trigger添加=== 首先当然是先创建一个Hosts,并确保能够正常监控,并创建一个可用的Items=== 然后就是点击创建triggers了

Configuration——》Host——》Create Trigger

二、Trigger的创建
Trigger的各选项含义:
       * 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最重要的就是它的表达式的写法:
      语法格式:{<server>:<key>.<function>(parameter)}<operator><constant>
      ① server:表达式的作用于哪个 host 上,默认当然是你选择的host了
      ② key:item中填写的监控项
      ③ function:Trigger function 是zabbix内置的触发器函数,可收集返回值、当前时间和其他参数
      ④ parameter:parameter是function的参数,具体设置成什么,需要看使用哪种function。(后面会加一个function的博客做为笔记查询)
                   例:avg(sec|#num,<time_shift>)
                   说明:大多数函数都支持 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
                  该表达式主要是用来判断“主机密码文件是否有被修改”

四、依赖关系
Dependencies:         有这样一个场景,主机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:
五、告警级别用户可自定义修改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详解