zabbix触发器表达式

zabbix触发器表达式

触发器使用逻辑表达式来评估通过item获取的数据是处于哪种状态,

触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下:

{<server>:<key>.<function>(<parameter>)}<operator><constant>

{主机:key.函数(参数)}常数

Functions函数

触发器functions完整链接:

Function参数

FUNCTION CALL描述
sum(600)600秒内的总和
sum(#5)最新5个值的和

last函数使用不同的参数将会得到不同的值,#2表示倒数第二新的数据。例如从老到最新值为1,2,3,4,5,6,7,8,9,10,last(#2)得到的值为9,last(#9)得到的值为2。last()就是倒数第一个值。

AVG,count,last,min和max函数还支持额外的参数,以秒为单位的参数time_shift(时间偏移量)。例如avg(1h,1d),那么将会获取到昨天的1小时内的平均数据。

[warning]备注:触发器表达式需要使用history历史数据来计算,如果history不可用(time_shift时间偏移量参数无法使用),因此history记录一定要保留长久一点,至少要保留需要用的记录。[/warning]
触发器表达式可以使用单位符号来替代大数字,例如5m替代300,或者1d替代86400,1k替代1024字节等等。

操作符

3.2及以上版本

PRIORITYOPERATORDEFINITIONNotes for unknown values
1-Unary minus-Unknown → Unknown
2notLogical NOTnot Unknown → Unknown
3*****Multiplication0 ***** Unknown → Unknown (yes, Unknown, not 0 - to not lose Unknown in arithmetic operations) 1.2 ***** Unknown → Unknown
/DivisionUnknown / 0 → error Unknown / 1.2 → Unknown 0.0 / Unknown → Unknown
4+Arithmetical plus1.2 + Unknown → Unknown
-Arithmetical minus1.2 - Unknown → Unknown
5<Less than. The operator is defined as: A<B ⇔ (A<B-0.000001) since Zabbix 3.4.9 A<B ⇔ (A≤B-0.000001) before Zabbix 3.4.91.2 < Unknown → Unknown
<=Less than or equal to. The operator is defined as: A<=B ⇔ (A≤B+0.000001) since Zabbix 3.4.9 A<=B ⇔ (A<B+0.000001) before Zabbix 3.4.9Unknown <= Unknown → Unknown
>More than. The operator is defined as: A>B ⇔ (A>B+0.000001) since Zabbix 3.4.9 A>B ⇔ (A≥B+0.000001) before Zabbix 3.4.9
>=More than or equal to. The operator is defined as: A>=B ⇔ (A≥B-0.000001) since Zabbix 3.4.9 A>=B ⇔ (A>B-0.000001) before Zabbix 3.4.9
6=Is equal. The operator is defined as: A=B ⇔ (A≥B-0.000001) and (A≤B+0.000001) since Zabbix 3.4.9 A=B ⇔ (A>B-0.000001) and (A<B+0.000001) before Zabbix 3.4.9
<>Not equal. The operator is defined as: A<>B ⇔ (A<B-0.000001) or (A>B+0.000001) since Zabbix 3.4.9 A<>B ⇔ (A≤B-0.000001) or (A≥B+0.000001) before Zabbix 3.4.9
7andLogical AND0 and Unknown → 0 1 and Unknown → Unknown Unknown and Unknown → Unknown
8orLogical OR1 or Unknown → 1 0 or Unknown → Unknown Unknown or Unknown → Unknown

3.0及其以下版本

优先级操作定义
1/
2*
3-
4+
5<小于. 用法如下: A<B ⇔ (A<=B-0.000001)
6>大于. 用法如下: A>B ⇔ (A>=B+0.000001)
7#不等于.用法如下: A#B ⇔ (A<=B-0.000001) | (A>=B+0.000001)
8=等于. 用法如下: A=B ⇔ (A>B-0.000001) & (A<B+0.000001)
9&逻辑与
10|逻辑或

触发器示例

示例一

触发器名称: 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(o)     最新值
>5      大于5

如上所示,www.zabbix.com这个主机的监控项,最新的CPU负载值如果大于5,那么表达式会返回true,这样一来触发器状态就改变为“problem”了。

示例二

触发器名称:www.zabbix.com is overloaded

表达式:

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

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

示例三

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

表达式:

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

/etc/passwd最新的checksum与上一次获取到的checksum不同,表达式将会返回true. 我们可以使用同样的方法监控系统重要的配置文件,例如/etc/passwd,/etc/inetd.conf等等

示例四

触发器名称:Someone is downloading a large file from the Internet

表达式:

{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.

示例六

触发器名称:Zabbix agent needs to be upgraded

表达式:

{zabbix.zabbix.com:agent.version.str("beta8")}=1

如果当前zabbix agent版本包含beta8(假设当前版本为1.0beta8),这个表达式会返回true.

示例七

触发器名称:Server is unreachable

表达式:

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

最近30分钟zabbix.zabbix.com这个主机超过5次不可达。

示例八

触发器名称:No heartbeats within last 3 minutes

表达式:

{zabbix.zabbix.com:tick.nodata(3m)}=1

tick为Zabbix trapper类型,首先我们要定义一个类型为Zabbix trapper,key为tick的item。我们使用zabbix_sender定期发送数据给tick,如果在3分钟内还未收到zabbix_sender发送来的数据,那么表达式返回一个true,与此同时触发器的值变为“PROBLEM”。

示例九

触发器名称:CPU activity at night time

表达式:

{zabbix:system.cpu.load[all,avg1].min(5m)}>2&{zabbix:system.cpu.load[all,avg1].time(0)}>000000&{zabbix:system.cpu.load[all,avg1].time(0)}<060000

只有在凌晨0点到6点整,最近5分钟内cpu负载大于2,表达式返回true,触发器的状态变更为“problem”

示例十

触发器名称:Check if client local time is in sync with Zabbix server time

表达式:

{MySQL_DB:system.localtime.fuzzytime(10)}=0

主机MySQL_DB当前服务器时间如果与zabbix server之间的时间相差10秒以上,表达式返回true,触发器状态改变为“problem”

示例十一

触发器名称:Comparing average load today with average load of the same time yesterday (使用 time_shift 时间偏移量参数).

表达式:

{server:system.cpu.load.avg(1h)}/{server:system.cpu.load.avg(1h,1d)}>2

一小时内平均值超过昨天同一时刻的两倍十触发告警

Hysteresis(迟滞,滞后)

简单的说触发器状态转变为problem需要一个条件,从problem转变回来还需要一个条件才行。一般触发器只需要不满足触发器为problem条件即可恢复。

有时候触发器需要使用不同的条件来表示不同的状态,举个官网很有趣的例子:机房温度正常稳定为15-20°,当温度超过20°,触发器值为problem,直到温度低于15°才会接触警报,异常会解除。

在zabbix3.2及其以上版本配置触发器时就可以设置Problem expressionRecovery expression

示例一

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

表达式

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

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

示例二

触发器名称: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)

示例三

触发器名称:接口[{#PORT}]入口带宽占用率过高

表达式:

({TRIGGER.VALUE}=0 and {7750_ip_route:port_bandwidth_in_ratio[{#PORT}].last()}>75) or ({TRIGGER.VALUE}=1 and {7750_ip_route:port_bandwidth_in_ratio[{#PORT}].max(3600)}>60)

监控项原型如下:

名称键值间隔历史记录趋势类型应用集状态
[接口{#PORT}]入口带宽占用率port_bandwidth_in_ratio[{#PORT}]5m7d90dService Robot采集器ML_APPLICATION, 接口带宽占用率已启用

告警条件:入口带宽占用率(>75%)
恢复条件:一个小时入口带宽占用率(<60%)

参考:

http://www.ttlsa.com/zabbix/zabbix-trigger-expression/

https://www.zabbix.com/documentation/3.4/manual/config/triggers

转载于:https://www.cnblogs.com/liao-lin/p/10299590.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[剑指offer][JAVA][面试题56 - I][第260题][位运算][HashSet]

【问题描述】 [面试题56 - I] [数组中数字出现的次数] 一个整型数组 nums 里除两个数字之外&#xff0c;其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)&#xff0c;空间复杂度是O(1)。示例 1&#xff1a;输入&#xff1a;nums [4,1,4,6] …

mongo:(3)windows上mongoDB安装

1打开程序 2下一步 3下一步 4custom自定义 5取消勾选&#xff0c;安装 6安装完成以后 在bin目录下建文件夹 7创建结束&#xff0c;将mongo.conf放在根目录下 8管理员运行 Cd D:\Program Files\MongoDB\Server\3.6\bin 然后 9 >mongod --config D:\mongo\mongo.conf --i…

同一个硬盘装多个linux系统,在一个硬盘上安装两个Linux操作系统方法

一个硬盘已安装Fedora 8 Linux系统&#xff0c;并安装grub引导管理程序&#xff0c;现要在这个硬盘的空闲分区中安装Fedora 9&#xff0c;操作如下&#xff1a;1.将Fedora-9-i386-DVD.iso文件放到一个Windows Fat32分区((hd0,4))的根目录&#xff0c;将这个iso文件中的isolinux…

LOJ10121 与众不同

题目描述 A 是某公司的 CEO&#xff0c;每个月都会有员工把公司的盈利数据送给 A&#xff0c;A 是个与众不同的怪人&#xff0c;A 不注重盈利还是亏本&#xff0c;而是喜欢研究「完美序列」&#xff1a;一段连续的序列满足序列中的数互不相同。 A 想知道区间 [L,R] 之间最长的完…

[计算机网络][总结][常见问题][TCP][三次握手][四次挥手]

TCP三次握手 四次挥手 三次握手 目的&#xff1a;保证传输的可靠性,为了防止已失效的连接请求报文段突然又传送到了服务端&#xff0c;因而产生错误。主要防止资源的浪费。 具体过程&#xff1a;当客户端发出第一个连接请求报文段时并没有丢失&#xff0c;而是在某个网络节点…

加密狗

加密锁是一种插在计算机并行口上的软硬件结合的加密产品&#xff08;新型加密锁也有usb口的&#xff09;。一般都有几十或几百字节的非易失性存储空间可供读写&#xff0c;现较新的狗&#xff08;加密锁&#xff09;内部还包含了单片机。软件开发者可以通过接口函数和加密锁进行…

java 构造器(constructor)

有一点很重要,即你要时刻询问子句"如果异常发生了,所有东西能被正确清理码?",尽管大多数情况下时非常安全的,但涉及到构造器时,问题出现了,构造器会把对象设置成安全的初始状态,但还会又别的动作,比如打开一个文件,这样的动作只有在对象使用完毕并且用户调用了特殊的…

keeplive linux平台下,Linux下搭建keepalive+nginx

一、 安装nginx(略)二、 安装keepalive安装依赖包 yum install –y popt* gcc* openssl* nmaptar fvxz keepalived-1.2.15.tar.gzcd keepalived-1.2.15./configure –prefix/usr/local/keepalivedmake && make installmkdir /etc/keepalived ##为keepalived创建配置文…

第二十二期:淘宝技术架构分享

一&#xff0c;淘宝技术架构 1.UIC: 用户中心(User Interface Center),提供所有用户信息相关的读写服务&#xff0c;如基本信息&#xff0c;扩展信息&#xff0c;社区信息&#xff0c;买卖家信用等级等等。 淘宝现在有两类卖家B 和C&#xff0c;这是通过在用户身上打不同的标签…

Linux启动过程以及初始化

Linux系统启动 POST加电自检–> 硬件检查 引导加载程序BIOS(Boot Sequence)–> 找到主引导记录&#xff08;MBR&#xff09;&#xff0c;引导加载程序检查分区表并找到一个可引导的分区 加载对应引导上的MBR(bootloader)–> 引导加载程序将所选操作系统的内核加…

Deep learning with Python 学习笔记(9)

神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练&#xff0c;有点类似于扔一架纸飞机&#xff0c;一开始给它一点推力&#xff0c;之后你便再也无法控制其飞行轨迹或着陆点。如果想要避免不好的结果&…

linux c 读取摄像头,Linux下onvif客户端获取ipc摄像头 获取能力:GetCapabilities

getcapabilities:获取能力,主要目的获取设备能力信息(获取媒体服务地址)鉴权&#xff1a;但是在调用获取设备能力之前是需要鉴权的。onvif协议规定&#xff0c;部分接口需要鉴权&#xff0c;部分接口不需要鉴权&#xff0c;在调用需要鉴权的接口时不使用鉴权&#xff0c;会导致…

[计算机网络][HTTP]

定义 超文本传输协议&#xff08;英文&#xff1a;HyperText Transfer Protocol&#xff0c;缩写&#xff1a;HTTP&#xff09;是互联网上应用最为广泛的一种网络协 议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由 统一资…

8次c语言上机作业答案,计算机二级C语言上机题库及答案2017

计算机二级C语言上机题库及答案2017引导语&#xff1a;我们将要迎来2017年9月份的计算机考试&#xff0c;大家准备好了吗&#xff0c;以下是百分网小编分享给大家的计算机二级C语言上机题库及答案2017&#xff0c;欢迎测试!一、填空题给定程序中已建立一个带有头结点的单向链表…

Swagger Learing - Spring Boot 整合swagger

学习了一下swagger。 这是编写的Demo 源码 https://github.com/AmberBar/Learning/tree/master/swagger-learning/swagger 需要的小伙伴可以clone直接运行 访问地址 http://localhost:9999/swagger-ui.html#/ 转载于:https://www.cnblogs.com/amberbar/p/10308256.html

[Leedcode][JAVA][第202题][快乐数]

【问题描述】 编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为&#xff1a;对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和&#xff0c;然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。如果 可以变为…

c语言结构体实现存储信息,用C语言结构体实现通讯录

实现一个通讯录&#xff1b;通讯录可以用来存储1000个人的信息&#xff0c;每个人的信息包括&#xff1a;姓名、性别、年龄、电话、住址提供方法&#xff1a;1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系…

Java类加载机制的理解

算上大学&#xff0c;尽管接触Java已经有4年时间并对基本的API算得上熟练应用&#xff0c;但是依旧觉得自己对于Java的特性依然是一知半解。要成为优秀的Java开发人员&#xff0c;需要深入了解Java平台的工作方式&#xff0c;其中类加载机制和JVM字节码这样的核心特性。今天我将…

java学习(171): 枚举类

定义一个枚举类 //枚举类型 public enum test122 {RED,GREEN,BLUE;}测试类 public class test123 {public static void main(String[] args){System.out.println( test122.BLUE );test122[] sigstest122.values();for(test122 e:sigs){System.out.println( "枚举名称&qu…

[剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]

【问题描述】[第3题][无重复字符的最长字串] 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。 示例 2:输入: "bb…