1、trigger 配置属性

name tirgger的名称,可以支持宏:{HOST.HOST}、{HOST.NAME}、

Expression:对触发器状态计算的逻辑正则表达式

Multiple PROBLEM events generation

Description 对触发器的描述

url: 一般设置可用宏为- {TRIGGER.ID}

severity: not classified 未知安装等级 灰色

               information   一般信息         亮绿

               warning          警告信息        ×××

                average          一般故障        橙色

                 high               高级别故障    红色

                 disaster           致命故障       亮红

2、Trigger 告警依赖

    告警依赖是指一个事件的成立需要依赖另一个的事件存在。这种情况适合于逻辑比较复杂的业务,例如,一个IDC的路由器出现故障时,机房内所有的机器都会因为状态不可获取而产生告警,但作为管理人员,并不想同时接收所有的故障,只需要接收到一条有效的告警“XXX的IDC    机房路由器X发生故障,将会影响整个机房的使用"

3、Trigger 正则中的单位

S:seconds

m: minutes

h: hosts

d: days

w: weeks

k: kilo

M: mega

G: giga

T: tera

P: peta

E: exa

z: zetta

Y: yotta

例如:以下语句:

{host:zabbix[proxy,zabbix_proxy,lastaccess]} > 120

{host:system.uptime[].last(0)} < 86400

{host:system.cpu.load.avg(600)} < 10

可以写成:

{host:zabbix[proxy,zabbix_proxy,lastaccess]} > 2m

{host:system.uptime[].last(0)} < 1d

{host:system.cpu.load.avg(10m)} < 10

函数的形参指的是函数可以接收不同的参数

在形参中,"#"在不同的函数中具有不同的含义,例如:

sum(600)表示最近600秒内获取到的数值求和。

sum(#5)表示最近取到5个值得和

last(#5)表示返回给定的第5个值,时间最早的值为第一个。例如:给定值3、7、2、6、5,last(#2)的值为7,last(#5)的值为5

last(0),即最后一次的值,0为参数。

4、Trigger 函数

(1) abschange

描述:返回最近获取到的值与之前的差值的绝对值。对于字符串类型,0表示值相等,1表示值不同。

  例如: {server.vfs.fs.size[/,free].abschange(10m)}<10,表示在server设备中,key值{{server.vfs.fs.size[/,free]最近一次获取到的值的和在前10分钟的差值为10,其结果可能最近一次值比之前大,也有可能比之前的值小,即从-10到0,再到10之间的范围,可以叫做抖动值或者误差范围。

(2) avg

参数:秒或#num

支持值类型:float和int

描述:返回指定时间间隔的平均值

例如:{server:vfs.fs.size[/,free].avg(#5,10m)} < 50G,表示在server设备中,key值vfs.fs.size[/,free]最近10分钟内,最近5次取值的平均值小于50G。

(3) change

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

(4) count 

参数:秒或#num

描述:返回指定时间间隔内的数值统计。时间间隔可以通过第一个参数设置为时间或收集值得数目。

实例:

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

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

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

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

(5) date

支持值类型:所有(any)

描述:返回当前日期

(6) dayofmonth

描述:返回当前是本月第几天(数值范围为1-31)

(7) dayofweek

返回当前是本周第几天,星期一是1,星期天是7

(8) delta

参数: 秒或#num

描述:返回指定时间间隔内最大值与最小值。时间间隔作为第一个参数,可以是秒或者收集值得数目。

例如:{switch:net.if.in[eth0].delta(10m)} > 10M,表示设备switch的接口eth0在最近10分钟内,最大值和最小值之间的差大于10M,即认为故障发生。

(9) diff

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

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

例如:{windows:agent.version.diff(0)} > 0 ,表示设备Windows的agent.version在最近一次值与之前的值不同。

(10) fuzzytime

参数:秒

支持值类型:float和int

描述:返回值1,表示监控项值得时间戳比zabbix-server的时间对n秒,0为其他情况。常使用system.localtime来检查本地时间是否与zabbix-server的时间相同。

(11) iregexp

参数:第一个为字符串,第二个为秒或#num

支持值类型:str、log、text

描述:与regexp类似,区别是不区分大小写

(12)last

参数:秒或#num

支持值类型:float、int、str、text和log

描述:最近的值,如果为秒,则忽略,#num表示最近第N个值

示例:

last(10) 等价于last(#1)

last(#3) 表示最近获取的监控项值得第三个值

例如:{mysql:mysql.ping.last(#3,5m)} = 0,表示设备mysql在最近5分钟内的第三次取值结果为0,即认为故障发生。

(13) logeventid

参数:string

支持值类型:log

描述:检查最近的日志条目的event ID是否匹配正则表达式。参数为正则表达式,POSIX扩展样式。当返回值为0时,表示不匹配,1表示匹配。

(14)logseverity

支持值类型:log

描述:返回最近日志条目的日志等级。当返回值为0时,表示默认等级

(15)logsource

支持值类型:log

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

(16) max

参数:秒或#num

藐视:返回指定时间间隔的最大值。时间间隔作为第一个参数,可以使秒或收集值得数目。

例如:{ftpserver:net.tcp.service[ftp].max(#3)} = 0 ,表示设备ftpserver中的key为net.tcp.service[ftp]在最近3次获取到的最大值都为0,则视为故障。

(17)min

描述:返回指定时间间隔的最小值。

例如:{gateway:icmppingloss.min(5m)} > 20,表示gateway设备在5分钟内用icmppingloss在最近5分钟内获取的最小值为20,即故障发生。

(18)nodata

描述:当返回值为1时,表示指定的间隔,没有接收到数据,0表示其他情况。

例如:{v.itnihao.com:agent.ping.nodata(5m)} = 1,表示设备v.itnihao.com的agent.ping在最近5分钟内没有接收到数据,即发生故障。

(19)now

描述:返回距离Epoch 时间的秒数

(20)prve

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

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

(21)regexp

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

(22)str

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

支持值类型:str log text

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

例如:{Tomcat:jmx["Catalina:type=ProtocolHander,port=8080",compression].str(off)} = 1,表示找到,0表示为其他情况

(23)strlen

参数:秒或#num

支持值类型:str、log、text

描述:指定最近值得字符串长度,参数值类似于last函数,例如:strlen(0)等价于strlen(#1),stelen(#3)表示最近的第三个值,strlen(0,86400)表示一天前最近的值。

(24)sum

参数:秒或者#num

支持值类型:float和int

描述:返回指定时间间隔中收集到的值的总和。时间间隔作为第一个参数,支持秒或收集值得数目。

(25)time

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