zabbix5.0-05-触发器

一、触发器介绍

概述
触发器中使用的表达式是非常灵活的。你可以使用它们去创建关于监控统计的复杂逻辑测试。

一个简单有效的表达式看起来像::

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

函数

触发器函数允许引用采集的值,当前时间和其他因素。

可以使用的支持函数完整列表。

函数参数

大多数数字型的函数接受秒数来作为参数。

你可以使用前缀 # 来指定参数具有不同的含义:

函数调用含义
sum(600)600秒内所有值的总和
sum(#5)最后5个值的总和

函数last当以#作为前缀使用时具有不同的含义 - 它可以选择第N次前的值, 返回值 3, 7, 2, 6, 5 (最近五次),last(#2) 将返回值为7 ,last(#5) 将返回值为5。

一些函数支持额外的第二个参数时间偏移量。这个参数允许从过去一段时间内引用数据。例如,avg(1h,1d) 将会返回一天前1小时的平均值。

你可以在触发器表达式中使用支持的单位符号, 例如 ‘5m’(分钟)代替 ‘300’ 秒,‘1d’(天)代替 ‘86400’ 秒。‘1k’ 代表 ‘1024’ bytes。

运算符

触发器支持下列运算符(在执行中优先级递减)

优先级运算符定义未知值 注释
1-- Unknown → Unknown
2not逻辑非not Unknown → Unknown
3*0 * Unknown → Unknown (yes, Unknown, not 0 - to not lose Unknown in arithmetic operations) 1.2 * Unknown → Unknown
/Unknown / 0 → error Unknown / 1.2 → Unknown 0.0 / Unknown → Unknown
4+1.2 + Unknown → Unknown
-1.2 - Unknown → Unknown
5<小于。该运算符定义: A<B ⇔ (A<B-0.000001)1.2 < Unknown → Unknown
<=小于等于。该运算符定义: A<=B ⇔ (A≤B+0.000001)Unknown <= Unknown → Unknown
>大于. 该运算符定义: A>B ⇔ (A>B+0.000001)
>=大于等于。 该运算符定义: A>=B ⇔ (A≥B-0.000001)
6=相等。 该运算符定义: A=B ⇔ (A≥B-0.000001) and (A≤B+0.000001)
<>不等于。该运算符定义: A<>B ⇔ (A<B-0.000001) or (A>B+0.000001)
7and逻辑与0 and Unknown → 0 1 and Unknown → Unknown Unknown and Unknown → Unknown
8or逻辑或1 or Unknown → 1 0 or Unknown → Unknown Unknown or Unknown → Unknown

not, and and or 运算符区分大小写,而且必须为小写。它们也必须被空格或括号包围。

所有运算符中, 除了 -not ,都有左到右的关联性。 -not是非结合的(意味着**-(-1)not (not 1)应该用–1** and not not 1代替).

计算结果:

  • <, <=, >, >=, =, <> 如果指定的关系为真,运算符将会在触发器表达式中产生‘1’。如果指定的关系为假,则返回‘0’。如果至少有一个运算数未知,则结果未知;
  • and 对于已知的运算对象,如果两个运算对象的比较不等于“0”,则运算符将会在触发器表达式中产生“1”,否则,它产生“0”;对于未知的运算对象,如果两个运算对象的比较等于“0”,则会产生“0”,否则,则会产生“Unknown”;
  • or 对于已知的运算对象,如果其中任意一个运算对象的比较不等于“0”,则运算符会在触发器表达式中产生“1”,否则,它产生“0”;对于未知的运算对象进行“or”运算,则只有当一个运算对象的比较不等于“0”,才会产生“1”,否则,它会产生“Unknown”;
  • 如果操作数的值不等于“0”,则已知操作数的逻辑否定运算符not的结果是“0”;如果操作数的值等于“0”,则为“1”。对于未知的操作数not产生“Unknown”。
缓存值

触发器评估所需的值由Zabbix server缓存。由于此触发器评估在服务器重新启动后一段时间导致较高的数据库负载。当监控项历史数据被移除(手动或housekeeper)时,缓存值不会被清除,因此服务器将使用缓存的值,直到它们比触发器函数中定义的时间段或服务器重启的时间长。

触发器示例
示例 1

www.zabbix.com的处理器负载过高

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

‘www.zabbix.com:system.cpu.load[all,avg1]’ 给出了被监控参数的简短名称。它指定了服务器是“www.zabbix.com”,监控项的键值是“system.cpu.load[all,avg1]”。通过使用函数“last()”获取最新的值。最后,“>5”意味着当www.zabbix.com最新获取的处理器负载值大于5时触发器就会处于异常状态。

示例 2

www.zabbix.com is overloaded

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

当前处理器负载大于5或者最近10分钟内最小值大于2,表达式为true。

示例 3

/etc/passwd文件被修改

使用函数diff:

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

当文件/etc/passwd的checksum值与最近的值不同时,表达式为true。

类似的,表达式可以用于监控重要文件的修改, 如/etc/passwd, /etc/inetd.conf, /kernel等

示例 4

有人正在从互联网上下载一个大文件

使用min函数:

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

在过去5分钟内,eth0上接收字节数大于100kb时,表达式为true。

示例 5

SMTP服务群集的两个节点都停止。 注意在一个表达式中使用两个不同的主机:

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

当SMTP服务器smtp1.zabbix.com和smtp2.zabbix.com都停止,表达式为true

示例 6

Zabbix agent需要升级

使用str()函数:

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

如果Zabbix agent版本是beta8(可能是1.0beta8),则表达式为真。

示例 7

服务器无法访问

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

当主机“zabbix.zabbix.com”在30分钟内超过5次不可达,则表达式为真。

示例 8

3分钟内没有心跳检查

使用nodata()函数:

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

要使用这个触发器,'tick’必须定义成一个Zabbix[:manual/config/items/itemtypes/trapper|trapper]]监控项。主机应该使用zabbix_sender定期发送这个监控项的数据。

如果在180秒内没有接收到数据,则触发值变为异常状态。

注释‘nodata’可以在任何类型的监控项中使用。

示例 9

夜间的CPU负载

使用time()函数:

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

仅在夜间(00:00-06:00),触发器状态变可以变为真。

二、找到取值范围

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、设置触发器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shark_西瓜甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值