设为首页 收藏本站
查看: 1335|回复: 0

[经验分享] zabbix学习系列之触发器

[复制链接]

尚未签到

发表于 2018-1-1 09:47:24 | 显示全部楼层 |阅读模式
触发器的简介


  • 监控项仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,"触发器"正式 用于为监控项所收集的数据定义阈值
  • 每一个触发器仅能管理至一个监控项,但是可以为一个监控项同时使用多个触发器;意思就是,为一个监控项定义多个具有不同阈值的触发器,可以实现不同级别的报警
  • 一个触发器由一个表达式构成,它定义了监控项所采集的数据的一个阈值
  • 一旦某次采集的数据超出了触发器定义的阈值,触发器状态将会转为"problem";而当采取的数据再次回归至合理的范围内时,其状态将重新返回到"OK"
触发器表达式
  

{<server>:<key>.<function>(<parameter>)}<operator><constant>  
某主机上某个key使用某个函数(参数)所得的值 和 设定的值比较
  
server:主机名称
  
key:主机上相应监控项的key;
  
function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采取的数据、当前时间及其它因素进行;
  


触发器表达式支持的函数
  

avg、              求平均值  
count、            指定时间内或次数内数值统计
  
change             指定时间内或次数内倒数第2次于倒数第1次的差值,对于字符串,0没有变化,1表示有变化;
  
date、             当前日期
  
dayofweek、        本周第几天       dayofmonth 本月第几天
  
delta、            指定时间内或次数内最大值与最小值的差
  
diff、             指定时间内或次数内倒数第2次于倒数第1次的值,有没有不同;常用于监控文件
  
regexp             检查最后一次采样的数据是否能够被指定的模式所匹配:1表示匹配,0表示不匹配
  
iregexp            不区分大小的正则表达式
  
last               最近采样的数据
  
max、min、nodata(没有数据)、
  
now                返回时间戳
  
prev               倒数第二个采样值
  
str                从最后一次的采样中查找此处指定的字符串;0表示找到,1表示没找到
  
strlen             字符串长度比较
  
sum                求和
  


触发器操作符


触发器示例
  示例一
  触发器名称:Processor load is too high on www.zabbix.com
  

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

  触发器说明:
  www.zabbix.com:host名称
  system.cpu.load[all,avg1]:item值,一分内cpu平均负载值
  last(0):最新值
  >5:最新值大于5
  如上所示,www.zabbix.com这个主机的监控项,最新的CPU负载值如果大于5,那么表达式会返回true,这样一来触发器状态就改变为“problem”了
  示例二
  触发器名称:www.zabbix.com is overloaded
  

{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分内的cpu负载大于2,那么表达式将会返回true.
  示例三
  触发器名称:/etc/passwd has been changed
  使用函数 diff():
  

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

  /etc/passwd最新的checksum与上一次获取到的checksum不同,表达式将会返回true. 我们可以使用同样的方法监控系统重要的配置文件,例如/etc/passwd,/etc/inetd.conf等等。这些zabbix一般都会自带,没带的你自己加上吧
  示例四
  触发器名称:Someone is downloading a large file from the Internet
  使用函数 min:
  

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

  当前主机网卡eth0最后5分钟内接收到的流量超过100KB那么触发器表达式将会返回true
  示例五
  触发器名称:Both nodes of clustered SMTP server are down
  

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

  当smtp1.zabbix.com和smtp2.zabbix.com两台主机上的SMTP服务器都离线,表达式将会返回true.
  示例六
  触发器名称:Server is unreachable
  

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

  如上表达式表示最近30分钟zabbix.zabbix.com这个主机超过5次不可到达
  Hysteresis(迟滞,滞后)
  简单的说触发器状态转变为problem需要一个条件,从problem转变回来还需要一个条件才行。一般触发器只需要不满足触发器为problem条件即可恢复。明白了么?不明白就看例子吧。
  有时候触发器需要使用不同的条件来表示不同的状态,举个官网很有趣的例子:机房温度正常稳定为15-20°,当温度超过20°,触发器值为problem,直到温度低于15°才会接触警报,异常会解除
  示例一
  触发器名称:Temperature in server room is too high
  

({TRIGGER.VALUE}=0&{server:temp.last(0)}>20)|  ({TRIGGER.VALUE}
=1&{server:temp.last(0)}<15)  

  如上有两个小括号,前面一个表示触发异常的条件,后面一个表达式表示解除异常的条件
  注意:宏变量 {TRIGGER.VALUE}将会返回当前触发器的值
  示例二
  触发器名称:Free disk space is too low
  Problem: 最近5分钟剩余磁盘空间小于10GB。(异常)
  Recovery: 最近10分钟磁盘空间大于40GB。(恢复)
  简单说便是一旦剩余空间小于10G就触发异常,然后接下来剩余空间必须大于40G才能解除这个异常,就算你剩余空间达到了39G(不在报警条件里)那也是没用的
  

({TRIGGER.VALUE}=0&{server:vfs.fs.size[/,free].max(5m)}<10G) |  ({TRIGGER.VALUE}
=1&{server:vfs.fs.size[/,free].min(10m)}<40G)  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430456-1-1.html 上篇帖子: zabbix 自动注册 下篇帖子: zabbix添加邮件报警机制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表