xiaoxue85 发表于 2019-1-19 08:20:06

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]
查看完整版本: zabbix trigger 函数解析