第五章 触发器(Trigger)
- 触发器
- 触发器概述
- 触发器表达式允许定义一个什么状况的阈值,如果接收的数据超过了可接受的状态,则触发器会被触发或将状态改为异常
- 触发器的状态
值 | 描述 |
OK | 这是一个正常的触发器状态,在旧版本的 Zabbix 称之为 False |
Problem | 通常意味着发生某些事情,True。 |
- Trigger 的配置
- Trigger 的配置步骤
configuration - host/template - trigger -create trigger
- 创建监控项
- 名称:触发器名称,名称中可包含宏: {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {ITEM.VALUE}, {ITEM.LASTVALUE} 和{$MACRO}。
- 严重性
严重性 | 定义 | 颜色 |
未分类 | 未知严重性 | 灰色 |
信息 | 提示 | 浅蓝色 |
警告 | 警告 | 黄色 |
一般严重 | 一般问题 | 橙色 |
严重 | 发生重要的事情 | 浅红色 |
灾难 | 灾难,财务损失等 | 红色 |
- 异常表达式:用于定义异常条件的逻辑表达式
- 事件成功迭代:
- 表达式:ok 事件 基于与问题表达式形同的表达式生成。
- 恢复表达式:如果问题表达式计算为 False,恢复表达式为 True,则生成 Ok 事件。
- None:触发器永远不会返回到 Ok 状态。
- 异常事件生成模式
- 单个:当触发器第一次进入异常状态时,生成一条单个条件。
- 多重:每一个触发器异常评估都将产生一条事件。
- 事件成功关闭:
- 所有问题:此触发器的所有问题
- 所有问题如果标签值匹配:只有那些匹配事件标签值引发的问题。
- 触发器表达式
- 模板
{<server>:<key>.<function>(<parameter>)}<operator><constant>
- 函数(https://www.zabbix.com/documentation/4.0/manual/appendix/triggers/functions)
函数 | 参数 | 支持类型 | 描述 | 例子 |
abschange | 无 | float,int,str,test,log | 返回最近获取到值与之前值的差值的绝对值,字符串:0表示相等,1表示不同。 |
|
- 函数参数
函数调用 | 含义 |
sum(600) | 600秒内所有值的总和 |
sum(#5) | 最后5个值的总和 |
- 运算符
优先级 | 运算符 | 定义 | 未知值注释 |
1 | - | 负 | -Unknown → Unknown |
2 | not | 逻辑非 | 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) |
|
7 | and | 逻辑与 | 0 and Unknown → 0 1 and Unknown → Unknown Unknown and Unknown → Unknown |
8 | or | 逻辑或 | 1 or Unknown → 1 0 or Unknown → Unknown Unknown or Unknown → Unknown |
来自 <https://www.zabbix.com/documentation/4.0/zh/manual/config/triggers/expression>
- 示例
- 触发器的依赖关系
有时候一台主机的可用性依赖于另一台主机。如果一台路由器宕机,则路由器后端的服务器将变得不可用。如果这两者都设置了触发器,你可能会收到关于两个主机宕机的通知,然而只有路由器是真正故障的。
这就是主机之间某些依赖关系可能有用的地方,设置依赖关系的通知可能会被抑制,而只发送根本问题的通知。
虽然Zabbix不支持主机之间的直接依赖关系,但是它们可以定义另外一种更加灵活的方式 - 触发器依赖关系。一个触发器可以有一个或多个依赖的触发器。
因此在我们简单示例中,我们打开服务器触发器配置的窗口,并设置它依赖于路由器的相应触发器。有了这样的依赖性,只要它所依赖的触发器处于"异常"状态,服务器触发器就不会改变状态,因此不会执行依赖的动作,也不会发送通知。
如果服务器和路由器都宕机且有依赖关系,Zabbix将不执行依赖触发器的动作。
来自 <https://www.zabbix.com/documentation/4.0/zh/manual/config/triggers/dependencies>
- 触发器设置
- 创建触发器->依赖关系->添加所依赖的触发器
- 自定义触发器的严重性
- 管理->一般->触发器严重性
- 事件标记