Zabbix服务器监控之《配置Zabbix触发器》(五)

上一篇 我们已经配置过zabbix的监控项了,本篇我们将再进行对监控项的触发器配置。而在配置zabbix触发器前,我们再来理解一下触发器事件动作

触发器(Triggers):我们可以把zabbix的触发器理解成一个条件表达式,我们往往通过触发器定义被监控项的阈值,当触发器对应的表达式被满足时,则代表被监控项达到了我们设定的阈值,也就意味着发生了我们不想要遇到的问题,换句话说,当监控项的值处于合理范围时,触发器不会被触发,当监控项的值超出合理范围(即达到阈值),触发器则会被触发,当触发器被触发时,往往代表着出现了问题,触发器未被触发时,其的状态为”OK”,当触发器被触发时,触发器的状态为”Problem”,当被监控项的值达到阈值时,触发器的状态从”OK”变为”Problem”,当监控项的值再次回归到合理范围时,触发器的状态会从”Problem”转换回”OK”。

事件(Events):当触发器的状态发生改变时,则会产生对应的”事件”,当然,由触发器的状态改变而产生的事件被称为”触发器事件”,zabbix中,事件分为几种类型,除了”触发器事件”,还有一些别的事件,此处为了方便描述,暂且不提及他们,我们可以把”事件”大概理解成一个重要的事情。

动作(Actions):当某个事件产生时,需要对应的处理措施,这种处理措施被称为动作。

配置触发器

我们还是以上节监控nginx1主机根目录的监控项为例进行创建触发器

点击配置-主机进入对应主机上的触发器后,点击右上角的创建触发器

根据下图配置触发器信息,触发器也可以在模版的监控项中创建,也可以在主机中创建。

点击添加后,我们可以在对应主机中查看根目录使用率的触发器

最后,我们在监测-最新数据中过滤显示根目录使用率监控项,点击图形,可以看到该监控项已经有触发器了。

至此,一个关于磁盘根目录使用率超过5%后的触发器就配置完成。然而当这个监控项的值达到我们指定的阈值5%时,就会产生某个”事件”,以便我们采取后续的措施,而这个后续操作可以是命令,也可以是报警通知。

触发器表达式说明

如下图,触发器的表达式生成方式

其实,上面的5个部分我们可以通过如下语法表示,如下语法描述了一个触发器的条件表达式的基本结构,{<server>:<key>.<function>(<parameter>)}<operator><constant>

下面我们对触发器的表达式语法进行说明,如:{web server1:vfs.fs.size[/,pused].last()}>5,那么,我们把该表达式分解成5个部分,从而方便我们去理解。

  • web server1:表示主机名称。
  • vfs.fs.size[/,pused]:表示对应主机上某个监控项对应的key。
  • last():对应上述语法中的(),last()被我们称之为函数。
  • \>:对应了上述语法中的,其实就是常用的比较操作符或者运算操作符。
  • 5:表示用于设定监控项对应的阈值。

function除了last()常用的有 avg、count、change、sum、max、min、date等,看这些函数的名字你也能猜出其大概的作用,无非就是获取监控项的值的最大值,最小值,值的总和,或者平均值等,如果你想要了解它们,可以登录zabbix的官网查看触发器表达式函数在线手册

而函数的参数格式变化则比较少,如果参数值前面带有”#”作为前缀,则表示次数,比如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点的监控项的值的平均值。

operator,其实就是常用的比较操作符或者运算操作符,由于zabbix版本的不同,操作符可能有所变化,zabbix4.0支持的操作符可以操作符参考在线手册