zabbix trigger 函数解析
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} > 120
{host:system.uptime[].last(0)} < 86400
{host:system.cpu.load.avg(600)} < 10
可以写成:
{host:zabbix} > 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)} 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.max(#3)} = 0 ,表示设备ftpserver中的key为net.tcp.service在最近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
页:
[1]