文章目录
- 1 概述
- 2 查看触发器
- 3 添加触发器
- 4 验证触发器
- 5 查看问题
- 6 问题恢复
1 概述
监控项用于收集数据,但是我们并不能时刻观测每个监控项的数据,看看哪个监控项的数据超过了正常可接受的数值或状态,比如 CPU 负载高于 90%、磁盘使用率低于10%、Agent 无法和当前zabbix 服务端通信等等。
而触发器(Triggers) 是可以做到实时观测监控项的数值是否在可接受的范围。
触发器会有一个数值,这个数值限制了一个监控项的值的可接受范围,通常这个数值称为 阈值。
触发器有个核心的配置项: 表达式
表达式是由 监控项的键,再加上一些其他的函数、各种运算符和 阈值 组成的。表达式最后本质是一个条件判断,会进行逻辑运算,最终的运算结果是一个布尔值。
当监控项(Items)收集到的数据满足表达式的特定条件时,触发器会被激活,或者进入“问题”状态——从而引起我们的注意,让我们知道有问题发生。如果数据再次恢复到合理的范围,触发器将返回“正常”状态。
触发器被激活,会生成事件。这些事件可以用于通知、报警或执行其他操作。
2 查看触发器
触发器和监控项是一样的,都是依附于某个主机。因此需要转到数据采集 → 主机,在主机列表中的任意一个主机的 触发器 列名下面,点击 触发器 就看到这个主机的所有触发器。
3 添加触发器
要为监控项配置触发器,点击 触发器 面板右上角的 创建触发器
这样会弹出一个 新建触发器 的表单
触发器必填项只有两个:
- 名称: 这个值会作为触发器的名称被显式在列表和其他地方。
- 表达式:通常由监控项(item)和运算符构成。可以直接在表达式输入框中编写,也可以点击表达式右侧的 添加 按钮图形化方式添加(新手推荐)。
例如这里还是沿用上一篇文件中添加的 监控项 Agent 状态 来新增一个触发器,监控项的值等于 0 表示 Agent 处于离线状态,等于 1 表示在线状态。
那我们就创建一个名为 Agent 离线 的触发器吧。
点击 添加 按钮后,会弹出 条件 表单面板。
之后需要点击 选择按钮,从这个主机的已配置的监控项中找到之前添加的监控项 Agent 状态,并点击它。
之后需要配置添加 结果 的条件判断,此示例需要选择 = 和 0
最后添加 插入, 在 表达式 中就会出现一个包含监控项的判断表达式。
其中 last()
函数表示获取到监控项最后一次返回的值(也就是最新的返回值)。
事件成功迭代
意思是当此触发器的表达式满足后,就会生成一个事件,此时叫事件成功。
迭代呢,就是后续可以做什么操作。
总的意思是,当有事件产生后,还可继续做什么操作。
其中有还可以选择 恢复表达式
监控项 Agent 状态 的最后一次返回值是 0 表示,表示问题出现,反之,最后一次返回值是 1,表示问题恢复。
因此,这里可以直接从上面已经有的表达式复制,粘贴到下面 恢复表达式 输入框中,并把 0 修改成 1 即可。
最后点击 添加 按钮,此触发器算是配置完成,并会出现在主机的触发器列表里。
点击 所有主机 返回主机列表。
会看到主机的 触发器 数量会增加
4 验证触发器
对于触发器 Agent 状态的验证,这里可以直接停止掉对应主机上的 zabbix-agent2 服务。当Agent 无法和服务器正常通信后,服务端的数据就会是 0。
systemctl stop zabbix-agent2
5 查看问题
当有任何触发器被触发后,都会在 检测 —> 问题 页面的问题列表里出现。
同时也可以在 检测 —> 主机 页面的列表里,查看到每个主机都有几个问题。
这里要说明的是,刚才我们把 gensu-dev 主机的 Agent 停掉了,所以这里它的 ZBX 是红色的,那它的问题 也就没法获取到了。
因为 Agent 不可用的文件级别更高,所以低级别的问题就没比较显示了,这个现象也称为 收敛。
而主机 Zabbix server 是我环境里的Zabbix server部署在的服务器,有个问题 1, 就是之前 问题 页面列表里出现的一个 CPU负载的问题。
点击黄色方块中的 1 ,可以直接跳转到 问题 页面。
6 问题恢复
在刚才的主机上启动 Agent 服务
systemctl start zabbix-agent2
之后查看 检测–> 主机 页面,发现主机 gansu-dev 的 ZBX 已经回复了
点击 最新数据 也会看到响应的变化