我是靠谱客的博主 冷艳小甜瓜,最近开发中收集的这篇文章主要介绍Zabbix Web下触发器与表达式的编写方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(1)avg

参数:秒或#num 
支持类型:float,int 
作用:返回一段时间的平均值

举例: 
avg(5):最后5秒的平均值 
avg(#5):表示最近5次得到值的平均值 
avg(3600,86400):表示一天前的一个小时的平均值 
如果仅有一个参数,表示指定时间的平均值,从现在开始算起,如果有第二个参数,表示漂移,从第二个参数前开始算时间,#n表示最近n次的值

 

(2)last

参数:秒或#num 
支持值类型:float,int,str,text,log 
作用:最近的值,如果为秒,则忽略,#num表示最近第N个值,请注意当前的#num和其他一些函数的#num的意思是不同的。

last(0)等价于last(#1) 
last(#3)表示最近第3个值(并不是最近的三个值) 
本函数也支持第二个参数time_shift,例如last(0,86400)返回一天前的最近的值。 
如果在history中同一秒中有多个值存在看,Zabbix不保证值的精确顺序#num从Zabbix1.6.2起开始支持,timeshift从1.8.2起开始支持,可以查询avg()函数获取它的使用方法

 

(3)max

参数:秒或#num 
支持值类型:float,int 
描述:返回指定时间间隔的最大值。时间间隔作为第一个参数可以是秒或收集值的数目(前缀为#)。从Zabbix1.8.2开始,函数支持第二个可选参数time_shift,可以查看avg()函数获取它的使用方法。 
例如:max(#3)=0 返回3次值如果都是0则触发告警

 

(4)min

参数:秒或#num 
支持值类型:float,int 
描述:返回指定时间间隔的最小值。时间间隔作为第一个参数可以是秒或收集值的数目(前缀为#)。从Zabbix1.8.2开始,函数支持第二个可选参数time_shift,可以查看avg()函数获取它的使用方法。

 

(5)nodata

参数:秒 
支持值类型:any 
描述:当返回值为1表示指定的间隔(间隔不应小于30秒)没有接收到数据,0表示获取到了。 
例:nodata(5m)=1 ===>5分钟之内获取不到数据就告警

 

(6)prev

参数:忽略 
支持值类型:float,int,str,text,log 
描述:返回之前的值,类似于last(#2)

 

(7)sum

参数:秒或#num 
支持值类型:float,int 
描述:返回指定时间间隔中收集到的值的总和,时间间隔作为第一个参数支持秒或收集值的数目(以#开始).从Zabbix1.8.2开始,本函数支持time_shift作为第二个参数。可以查看avg函数获取它的用法。

 

(8)change

参数:忽略 
支持类型:float,int,str,text,log 
作用:返回最近获得值与之前获得值的差值,对于字符串0表示相等,1表示不同 
change(0)>n:忽略参数一般输入0,表示最近得到的值与上一个值的差值大于n

 

(9)diff

参数:忽略 
支持值类型:float,init,str,text,log 作用:返回值为1,表示最近的值与之前的值不同,0为相同。 
例如:diff(0)>0 ===>表示现在获取的值如果和之前的不同就告警

例如:

image_1csinfmj8d0413hj6hpct19ld7f.png-153.9kB

 

1.3 Zabbix Web创建触发器过程以及触发器与监控项对应关系

 

(1)创建一个触发器

我们之前已经创建了一个检测内存剩余大小的监控项,现在我们给这个监控项加一个触发器。当内存小于20M时,触发报警

image_1csinh9aq1iga5hg1o1l8ad1o9j7s.png-42.4kB


image_1csini536fjs1nb718uv1pp81dli99.png-76.5kB


image_1csinjecuoma1f4d1t1g11nc2o4am.png-39.4kB


image_1csink9c6ojm1ach17b39sup9gcj.png-26.7kB

 

(2)进行表达器测试

image_1csinlaad1op55jg10ktmggdmfd0.png-69.3kB


image_1csinlrm0k7j1b0d1m2855j4jbdd.png-37.8kB


image_1csinmk50sjkl4c1et41lh7a6fdq.png-59.5kB


image_1csinmvqrd6i19md1i4u15e61v5ie7.png-42.8kB


image_1csinna3n4bh14on10ld1opq1qacek.png-19kB

表达式测试成功后,我们添加即可

 

(3)在服务端进行监控项数据获取测试

image_1csino7i8104625lnp1bo114kqf1.png-47.9kB


image_1cu7bknrf85e1ahuqgf1mq81gt13.png-144.5kB

 

监控项表达式说明

{aaaa:vm.memory.size[available].last()}<20M

 

  1. aaaa:模版名
  2. vm.memory.size:zabbix监控端向被监控端发送的代号
  3. .last()<20 :last()<===>last(0)<===>last(#1)

zabbix_get -s 192.168.200.69 -k "vm.memory.size" 
获取对应IP的全部内存总量

zabbix_get -s 192.168.200.69 -k "vm.memory.size[available]" 
获取对应IP的剩余内存总量

image_1cu7bpcll1ushhp51t8r3cqdsr1g.png-21.4kB

 

1.4 为了体会深刻,我们再创建一个监控项同时创建它的触发器

 

(1)快速创建一个Agent_ping监控项

image_1csinthmflu3to91ujg18qcvfsfu.png-83kB


image_1csintt16klf147ncaf1sej1rl7gb.png-17.2kB

 

(2)在监控端测试监控项的键值

[root@localhost ~]# zabbix_get -s 192.168.0.220 -k "agent.ping"
1
[root@localhost ~]# zabbix_get -s 192.168.0.221 -k "agent.ping"
1
[root@localhost ~]# zabbix_get -s 192.168.0.222 -k "agent.ping"
zabbix_get [11715]: Get value error: cannot connect to [[192.168.0.222]:10050]: [113] No route to host

我们发现如果对方服务器IP能ping通,则返回值是1。反之不是1就有问题

 

(3)创建监控项的告警触发器

image_1csio0a6n1lut1alhfuv16m8gs1ho.png-18.4kB


image_1csio0m06u92ooi17oe13di5ci5.png-52.4kB


image_1csio12f21joimunuaq1mffpk2ii.png-18.8kB


image_1csio1d8i1as4hbb12so17j91rc4iv.png-18.5kB


image_1csio1pn71dn61mc2ukrj3h1o28jc.png-13.3kB


image_1csio26pfth11sl3enn8n37u3jp.png-13.5kB

到这里就创建完毕了,请仔细体会这个过程。

最后

以上就是冷艳小甜瓜为你收集整理的Zabbix Web下触发器与表达式的编写方法的全部内容,希望文章能够帮你解决Zabbix Web下触发器与表达式的编写方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部