13Trigger表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13Trigger表达式相关的知识,希望对你有一定的参考价值。

Trigger表达式:

Zabbix Trigger的表达式高度灵活,可以创建出非常复杂的测试条件,基本的触发器表达式如下:

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

例如:{10.10.10.202:net.tcp.service[http,,80].last()}=0

server:主机名称;

key:主机上关联的相应监控项的key;


function:评估采集到的数据是否存在合理范围内时 所使用的函数;评估过程可以根据采集的数据、当前时间及其它因素进行

目前触发器所支持的函数有avg、count、change(改变值大小)、date(时间)、dayofweek(星期几)、delta、diff(不同之处)、iregexp(基于正则表达式匹配)、last(最后一次采样)、max、min、nodata(没采集到数据)、now、sum等


patameter函数参数;大多数数值函数可以接受秒数为其参数,而如果再参数使用之前使用“#” 作为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10) 则表示最近10次取值之和;此外,avg、count、last、min和max还支持使用第二个参数,用于完成时间限定,例如,max(1h,7d)将返回一周之前一小时内的最大值


创建触发器可用的各属性说明

Name:触发器名称,可使用宏,如$1、$2....$9等

Expression:逻辑表达式,用于评估触发器状态

Multiple PROBLEM events generation:依赖于当前触发器“Problem”状态生成其他事件;

Description:当前触发器的描述信息;

URL:在screen的“Status of  Trigger“中显示的内容的链接;

Severity:当前触发器的严重级别

Enabled:是否启用当前触发器

技术分享



Trigger运算符:

Trigger支持的运算符如下:

技术分享



触发器的函数表达式


函数表达式也算是表达式中的一部分,不过内容比较多,这里单独拿出来总结 。

abschange

参数:忽略

支持类型:float,int,str,text,log

作用:返回最近获得的值与之前获得值差的绝对值,对于字符串类型:0表示相等,1表示不同


avg

参数:秒或#num

支持类型:float,int

作用:返回一段时间的平均值

举例:

avg(5):最后5秒的平均值

avg(#5):表示最近5次得到值的平均值

avg(3600,86400):表示一周前的一个小时内的平均值

如果仅有一个参数,表示指定时间的平均值,从现在开始算起,如果有第二个参数,表示漂移,从第二个参数前开始算时间,

#n表示最近n次的值


max

参数:秒或#num

支持值类型:float,int

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


min

参数:秒或#num

支持值类型:float,int

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

sum

参数:秒或#num

支持值类型:float,int

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


change

参数:忽略

支持类型:float,int,str,text,log

作用:返回最近获得值与之前获得值的差值,对于字符串0表示相等,1表示不同

举例:

change(0)>n:忽略参数一般输入0,表示最近得到的值与上一个值的差值大于n


count

参数:秒或#num

支持类型:float,int,str,text,log

作用:返回指定时间间隔内数值的统计,

举例:

count(600)最近10分钟得到值的个数

count(600,12)最近10分钟得到值的个数等于12

count(600,12,"gt")最近10分钟得到值的个数大于12

count(#10,12,"gt")最近10个值中,值大于12的个数

count(600,12,"gt",86400)24小时之前的10分钟内值大于12的个数

count(600,6/7,"band")-thenumberofvaluesforlast10minuteshaving‘110‘(inbinary)inthe3leastsignificantbits.

count(600,,,86400)24小时之前的10分钟数据值的个数

第一个参数:指定时间段

第二个参数:样本数据

第三个参数:操作参数

第四个参数:漂移参数

#支持的操作类型

eq: 相等

ne: 不相等

gt: 大于

ge: 大于等于

lt: 小于

le: 小于等于

like: 内容匹配


diff

参数:忽略

支持值类型:float,int,str,text,log

作用:返回值为1表示最近的值与之前的值不同,0为其他情况


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()函数获取它的使用方法


logeventid

参数:string

支持值类型:log

描述:检查最近的日志条目的EventID是否匹配正则表达式.参数为正则表达式,POSIX扩展样式.当返回值为0时表示不匹配,1表示匹配。该函数从Zabbix1.8.5起开始支持.


logseverity

参数:忽略

支持值类型:log

描述:返回最近日志条目的日志等级(logseverity).当返回值为0时表示默认等级,N为具体对应等级(整数,常用于Windowseventlogs).Zabbix日志等级来源于Windowseventlog的Information列.


logsource

参数:string

支持值类型:log

描述:检查最近的日志条目是否匹配参数的日志来源.当返回值为0时表示不匹配,1表示匹配。通场用于Windowseventlogs监控.例如logsource["VMWareServer"]


prev

参数:忽略

支持值类型:float,int,str,text,log

描述:返回之前的值,类似于last(#2)


regexp

参数:第一个参数为string,第二个参数为秒或#num

支持值类型:str,log,text

描述:检查最近的值是否匹配正则表达式,参数的正则表达式为POSIX扩展样式,第二个参数为秒数或收集值的数目,将会处理多个值.本函数区分大小写。当返回值为1时表示找到,0为其他.


str

参数:第一个参数为string,第二个参数为秒或#num

支持值类型:str,log,text

描述:查找最近值中的字符串。第一个参数指定查找的字符串,大小写敏感。第二个可选的参数指定秒数或收集值的数目,将会处理多个值。当返回值为1时表示找到,0为其他.


strlen

参数:秒或#num

支持值类型:str,log,text

描述:指定最近值的字符串长度(并非字节),参数值类似于last函数.例如strlen(0)等价于strlen(#1),strlen(#3)表示最近的第三个值,strlen(0,86400)表示一天前的最近的值.该函数从Zabbix1.8.4起开始支持


time

参数:忽略

支持值类型:any

描述:返回当前时间,格式为HHMMSS,例如123055


date

参数:忽略

支持类型:any

作用:返回当前的时间,格式YYYYMMDD


dayofmonth

返回当前是本月的第几天


dayofweek

返回当前是本周的第几天


delta

参数:秒或#num

支持类型:float,int

作用:返回时间间隔内的最大值与最小值的差值


nodata

参数:秒

支持值类型:any

描述:当返回值为1表示指定的间隔(间隔不应小于30秒)没有接收到数据,0表示其他.


now

参数:忽略

支持值类型:any

描述:返回距离Epoch(1970年1月1日00:00:00UTC)时间的秒数


fuzzytime

参数:秒

支持值类型:float,int

作用:返回值为1表示监控项值的时间戳与ZabbixServer的时间多N秒,0为其他.常使用system.localtime来检查本地时间是否与Zabbixserver时间相同.



trigger表达式举例:

{www.magedu.com:system.cpu.load[all,avg1].last(0)}>3


表示主机www.magedu.com上所有的CPU的过去一分钟内的平均负载的最后一次取值大于3时将触发状态转换

 对于last函数来说,last(0)相当于last(#1)


{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5

#系统负载大于5就报警


{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5|{www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2

#cpu负载大于5或者最后10分钟负载大于2的时候都会报警。


{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff(0)}>0

#/etc/passwd文件改变会报警


{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K

#在最后5分钟,网卡eth0的流量大于100K报警


{smtp1.zabbix.com:net.tcp.service[smtp].last(0)}=0&{smtp2.zabbix.com:net.tcp.service[smtp].last(0)}=0

#两个节点上的smtp服务都宕机才会报警,该表达式用了两个主机


{zabbix.zabbix.com:icmpping.count(30m,0)}>5

#在最后30分钟主机不能ping通的次数大于5就报警


本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1789212

以上是关于13Trigger表达式的主要内容,如果未能解决你的问题,请参考以下文章

zabbix-trigger表达式举例

Quartz.Net系列:Trigger之CronScheduleBuilder和Cron表达式详解

zabbix的trigger

触发器 的表达式函数

zabbix详解

element-ui的rules中正则表达式