触发器的简介

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

触发器说明:

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()}>|{www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>

当前cpu负载大于5或者最近10分内的cpu负载大于2,那么表达式将会返回true.

示例三

触发器名称:/etc/passwd has been changed

使用函数 diff():

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

/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()}=&{smtp2.zabbix.com:net.tcp.service[smtp].last()}=

当smtp1.zabbix.com和smtp2.zabbix.com两台主机上的SMTP服务器都离线,表达式将会返回true.

示例六

触发器名称:Server is unreachable

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

如上表达式表示最近30分钟zabbix.zabbix.com这个主机超过5次不可到达

Hysteresis(迟滞,滞后)

简单的说触发器状态转变为problem需要一个条件,从problem转变回来还需要一个条件才行。一般触发器只需要不满足触发器为problem条件即可恢复。明白了么?不明白就看例子吧。
有时候触发器需要使用不同的条件来表示不同的状态,举个官网很有趣的例子:机房温度正常稳定为15-20°,当温度超过20°,触发器值为problem,直到温度低于15°才会接触警报,异常会解除

示例一

触发器名称:Temperature in server room is too high

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

如上有两个小括号,前面一个表示触发异常的条件,后面一个表达式表示解除异常的条件

注意:宏变量 {TRIGGER.VALUE}将会返回当前触发器的值

示例二

触发器名称:Free disk space is too low

Problem: 最近5分钟剩余磁盘空间小于10GB。(异常)

Recovery: 最近10分钟磁盘空间大于40GB。(恢复)

简单说便是一旦剩余空间小于10G就触发异常,然后接下来剩余空间必须大于40G才能解除这个异常,就算你剩余空间达到了39G(不在报警条件里)那也是没用的

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

zabbix学习系列之触发器的更多相关文章

  1. zabbix学习系列之QQ消息报警

    安装依赖包 环境 Zabbix: 3.2 OS:Centos 安装依赖包 yum install lrzsz chrony gcc gcc-c++ git openssl-devel perl-Ext ...

  2. zabbix学习系列之配置邮件告警

    整体思路是:添加监控项-->配置触发器(达到设定的阈值就触发)-->配置动作(将某个触发器绑定到某个动作,达到某个阈值,触发器触发的时候,通过邮件发送告警信息给某个用户) 配置触发器 创建 ...

  3. zabbix学习系列之基础概念

    触发器 概念 "监控项"仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送警告信息,"触发器"正式英语为监控项所收集的数据 ...

  4. MySQL学习系列之触发器

    触发器简介 触发器作用: 监控某种事件并触发某种动作 触发语法: CREATE TRIGGER trigger_name trigger_event ON tbl_name FOR EACH ROW ...

  5. Quartz.NET学习系列

    Quartz.NET它是一个开源的任务调度引擎,对于周期性任务,持久性任务提供了很好的支持,并且支持持久性.集群等功能. 这是什么对我来说Quartz.NET学习记录: 源代码下载http://yun ...

  6. SQL Sever 学习系列之一

    SQL Sever 学习系列之一 本学习系列,从实际工作需要中积累,对于一个新手而言,写出几条漂亮的查询语句,应该是可以受启发的. 一.问题的需求是:员工薪酬发放,现有资金能发放多少人,哪些人应得? ...

  7. Dubbo学习系列之十二(Quartz任务调度)

    Quartz词义为"石英"水晶,然后聪明的人类利用它发明了石英手表,因石英晶体在受到电流影响时,它会产生规律的振动,于是,这种时间上的规律,也被应用到了软件界,来命名了一款任务调度 ...

  8. Zabbix学习笔记(yum源安装)

    Zabbix学习笔记(yum源安装) 链接:https://pan.baidu.com/s/19RXhumkB-ulpI4BGOa5b_A 提取码:115h 复制这段内容后打开百度网盘手机App,操作 ...

  9. 分布式学习系列【dubbo入门实践】

    分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...

随机推荐

  1. Servlet+Json代码

    package com.brmoney.servlet; import java.io.IOException; import java.io.PrintWriter; import java.uti ...

  2. phpstrom换行的一个小坑

    安装phpstrom后汉化会默认不是左边定格换行,而是会智能换行 苦找了许久了,终于知道在哪设置了,跟大家分享一下,希望不要走同样的坑 不勾选即可

  3. [Gym101138G][容斥原理]LCM-er

    [Gym101138G][容斥原理]LCM-er 题意描述 给定\(n,a,b,x\)四个数字,需要计数满足如下条件序列的个数(答案对\(10^9+7\)取模),条件如下. \[ {a \le A_1 ...

  4. Mysql实战之索引

    author:JevonWei 版权声明:原创作品 索引基础: 索引:提取索引的创建在的表上字段中的数据,构建出一个独特的数据结构: 索引的作用:加速查询操作:副作用:降低写操作性能: 表中数据子集: ...

  5. 【bzoj3630】[JLOI2014]镜面通道 对偶图+计算几何+网络流最小割

    题目描述 在一个二维平面上,有一个镜面通道,由镜面AC,BD组成,AC,BD长度相等,且都平行于x轴,B位于(0,0).通道中有n个外表面为镜面的光学元件,光学元件α为圆形,光学元件β为矩形(这些元件 ...

  6. httpClient get方式抓取数据

    /*     * 爬取网页信息     */    private static String pickData(String url) {        CloseableHttpClient ht ...

  7. 减法要用 signed 型

    今天调试一个程序,因为Feedback是电流采样值,Setpoint是PWM值,这两个不可能是负值.所以以为Setpoint和Feedback这两个变量都可以设置为u16型(unsigned int) ...

  8. java连接mysql数据库 三 实现增删改查操作

    同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...

  9. bzoj3680吊打GTY

    题意:http://www.lydsy.com/JudgeOnline/problem.php?id=3680 sol  :吊打出题人(逃~ puts("nan") 出题人题解:h ...

  10. ionic2 jpush

    ionic2 为ionic2调用极光插件提供符合angular2及TS的调用方式 install 先安装官方的cordova插件 $ cordova plugin add jpush-phonegap ...