[关闭]
@Mr-13 2020-10-13T10:11:20.000000Z 字数 2196 阅读 62

zabbix笔记(6):创建触发器(Triggers)

zabbix


文章引用:zabbix从放弃到入门(7):触发器详解之一,创建触发器


  新部署的主机上并不存在任何触发器,所以此处的触发器列表为空,如果对应主机上已经存在对应的触发器,我们可以通过过滤条件筛选出我们想要得到的触发器,此处,我们直接点击"创建触发器"按钮。

  我们为触发器起个名字,名字叫 Partition Used: /data ,这个触发器是为了监控“/data”目录所在分区的使用率而创建的我们之前已经创建了监控项"Partition used: /data" 吗? 我们现在要做的就是为这个监控项创建一个触发器,当这个监控项的值达到我们指定的阈值时,就会产生某个"事件",以便我们采取后续的措施;触发器的本质其实是一个表达式,用来定义监控项的阈值,下面来创建一个触发器。
  

  
  上图中我们配置了:当/data盘使用率超过40%进行触发,详细说一下具体的配置项:

1、名称:
  这里不多说,起一个看一眼能明白干嘛的名字就好了;别起名字奇奇怪怪后面都不知道是干嘛的

2、严重性:
  相当于定义了一个问题处理的“优先级”提示;不多赘述,继续

3、表达式:
  这里是重点了,上面说,触发器本质就是一个表达式;这里点击添加按钮,会弹出表达式构造窗口;
  首先选择一个监控项(要设置触发器,怎么也得先有一个触发对象是吧);
  功能下拉单选框提供了很多候选项,对于磁盘使用率来说,如果没有主动删除,或者脚本自动执行删除,是不会神奇的自己释放磁盘空间的,所以这里不需要做平均值之类的处理,直接取最近一次数值就可以了。
  
  
  
  间隔:如果想定义多长质检之内,出现过磁盘使用率超过多少,这样的触发条件,这里就可以填一下,默认单位是秒;
  结果:就是设置的触发器阈值,这里设置 40,即磁盘使用率超过40触发;
  
4、描述
  没什么过多好说的,备注一下触发器设置的具体说明,还是为了以后方便维护的。
  


  填写好,点击保存完事;这里发现表达式文本框填入了上一步根据我们的设置项,自动填入的表达式:

  1. {zmtest.db.pgsql:vfs.fs.size[/data,pused].last()}>=40

  再看表达式,这样是不是就明白了;当然,如果我们需要定义比较复杂,多个监控项条件共同决定的时候,可以点击“表达式构造器”,打开弹窗,添加多个条件,如下图:
  

  
  都编辑完成之后,点击保存,完活,我们再看一下设置好的触发器。
  

  然后我们再看一下触发器对用监控项的“图形”:
  

  

  上图中,可以看到图形里,已经出现了触发器的图例,并且在图形上,也已经有了触发器的折线;因为例子中,被监控的主机/data盘的使用率已经超过了40%,所以在触发器设置之后,下一个监控项数据采集上来之后,马上就会触发条件了。
  
  在产生触发项之后,在“监测”---“问题”中,也能看到具体的监控数据了,如下图:
  

  


  回到上面,表达式输入框里自动填入的表达式内容,我们再仔细梳理一下:

  1. {zmtest.db.pgsql:vfs.fs.size[/data,pused].last()}>=40


  
  上面5个部分我们可以通过如下语法表示,描述一个触发器表达式的基本结构:

  1. {<server>:<key>.<function>(<parameter>)}<operator><constant>

1、<server>:
  表示主机名称,上图中对应的主机为:zmtest.db.pgsql ;
  
2、<key>:
  表示对应主机上某个监控项对应的key,上图中的key为:vfs.fs.size[/data,pused]
  
3、<function>(<parameter>):
  上图中对应为:last() ;last()称为函数,该函数是可以有参数的,参数在我们设置表达式参数时填写;在当前例子中,因为我没有填写参数,所以这里为空;

  除了last()函数之外,触发器所支持的函数还有非常多,可以查看zabbix官方手册进行了解:https://www.zabbix.com/documentation/4.0/zh/manual/appendix/triggers/functions

  函数的参数格式变化则比较少,如果参数值前面带有"#"作为前缀,则表示次数,比如avg(#10),则表示最近10次监控项的值的平均值;如果参数值前面没有"#"作为前缀,则表示时间;

  比如sum(300),表示300秒内监控项的值的总和,max(#20)则表示最近20次监控项的值的最大值,min(600)则表示最近10分钟内监控项的值的最小值,但是需要注意,last(0)的含义与last(#1)的含义相同,都表示最近一次。

  有的函数还支持使用第二个参数,比如avg(1h,1d) ,表示一天前的一小时内的监控项的值的平均值,假设现在的时间是5点,avg(1h)可以理解为4点到5点之间的监控项的值的平均值,而avg(1h,1d) 中的1d表示时间偏移量,那么avg(1h,1d)可以理解为昨天4点到5点的监控项的值的平均值。
  
4、<operator>:
  运算符,上图中对应 >= ;由于zabbix的版本不同,运算符可能会发生变化,具体规范可以查看zabbix的官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/config/triggers/expression
  
5、<constantr>:
  阈值

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注