zabbix7.0TLS-05-快速入门-触发器
文章目录
- 1 概述
- 2 查看主机的触发器
- 3 添加触发器
- 3.1 触发器配置项介绍
- 3.2 扩展文档
- 3.2.1 关于配置项中每个键值返回值的说明
- 3.2.2 触发器函数文档
- 4 验证触发器
- 5 问题
- 5.1 查了问题总列表
- 5.2 查看问题详情
- 5.3 更新处理问题
- 5.4 查看已经处理的问题
- 6 问题恢复
1 概述
监控项用于收集数据,但是我们并不能时刻观测每个监控项的数据,看看哪个监控项的数据超过了正常可接受的数值或状态,比如 CPU 负载高于 90%、磁盘使用率低于10%、Agent 无法和当前zabbix 服务端通信等等。
而触发器(Triggers) 是可以做到实时观测监控项的数值是否在可接受的范围。
触发器会有一个数值,这个数值限制了一个监控项的值的可接受范围,通常这个数值称为 阈值。
触发器有个核心的配置项: 表达式
表达式是由 监控项的键,再加上一些其他的函数、各种运算符和 阈值 组成的。表达式最后本质是一个条件判断,会进行逻辑运算,最终的运算结果是一个布尔值。
当监控项(Items)收集到的数据满足表达式的特定条件时,触发器会被激活,或者进入“问题”状态——从而引起我们的注意,让我们知道有问题发生。如果数据再次恢复到合理的范围,触发器将返回“正常”状态。
触发器被激活,会生成事件。这些事件可以用于通知、报警或执行其他操作。
2 查看主机的触发器
触发器和监控项是一样的,都是依附于某个主机。因此需要转到数据采集 → 主机,在主机列表中的任意一个主机的 触发器 列名下面,点击 触发器 就看到这个主机的所有触发器。
3 添加触发器
要为监控项配置触发器,点击 触发器 面板右上角的 创建触发器
这样会弹出一个 新建触发器 的表单
3.1 触发器配置项介绍
触发器必填项只有两个:
-
名称
这个值会作为触发器的名称被显式在列表和其他地方。 -
表达式
通常由监控项(item)和运算符构成。可以直接在表达式输入框中编写,也可以点击表达式右侧的 添加 按钮图形化方式添加(新手推荐)。
例如这里还是沿用上一篇文件中添加的 监控项 Agent 状态 来新增一个触发器。
那我们就创建一个名为 Agent 离线 的触发器吧。
点击 添加 按钮后,会弹出 条件 表单面板。
-
监控项
这里只能选择已经给这台主机配置好的监控项。
需要点击 选择按钮,从这个主机的已配置的监控项中找到之前添加的监控项 Agent 状态,并点击它。
-
功能
在这里可以根据监控项的返回值,选择合适的触发器函数,以便监控项的值进行处理计算。比如需要选择监控项最后一次返回的值作为数据源进行判断,就可以选择
last()
这个函数。
这里有个特殊的触发器函数nodata()
,这个函数的行为是:nodata()
函数的返回值依赖于 Zabbix Server 是否在指定时间段内接收到监控项的数据。- 如果 Agent 停止,Zabbix Server 在监控期间没有收到任何数据,因此
nodata()
函数返回 1,表示在指定时间内没有数据。
此示例 Agent 状态 监控项的键值是
agent.ping
, 正常此监控项会返回 1, 如果 Agent 服务关闭,或者无法和Zabbix server 正常通信,zabbix server 都会无法收到数据,因此这里需要使用nodata()
函数。
-
最后一个 (T)
这个是选择一个最近的时间范围,用于检查Zabbix server 在最近的一个时间段内是否接收到数据。
周期不应小于30秒,因为历史记录同步器进程仅每30秒计算一次此函数;不允许使用nodata(/host/key,0)
。这里需要注意的是
数据的更新频率
nodata()
函数的行为依赖于数据的更新频率。如果您的agent.ping
项的更新间隔较长(例如,默认的 30 秒),在短时间内查询nodata()
可能会返回 1,因为在指定的时间段内没有接收到数据。
为了实验目的,重新调整监控项的 更新间隔 为 5s。
之后设置 触发器 中的 最后一个(T) 为 30s 。
-
Mode
如果设置为strict (双引号),此函数将对代理可用性不敏感(详细信息请参阅官方文档)。
这里可以先不设置。 -
结果
结果就是对触发器函数的结果进行逻辑运算,支持的运算符:
对于此示例中的触发器函数nodata()
来说,需要配值为=1
,因为函数返回 1 说明没有收到数据,需要触发事件。
- 间隔
不同的配置项,不同的函数,会有不同的配置项,比如有的函数会有 间隔。就是这个触发器每隔多长时间,对表达式计算一次,单位是秒。
- 间隔
-
最后点击 添加 按钮,此触发器算是配置完成,并会出现在主机的触发器列表里。
点击 所有主机 返回主机列表。
会看到主机的 触发器 数量会增加
3.2 扩展文档
3.2.1 关于配置项中每个键值返回值的说明
zabbix 自带的键值,他们的返回值有不同的类型,对于这个的说明可以使用如下方法查看到。
每个键值的右侧都有简短的说明,也可以点击键值最右的问号 ?
,跳转到官方文档。
3.2.2 触发器函数文档
内个版本所支持的函数不同,且参数也有可能变化,因此要找对对应版本的文档。
7.0 的文档:
https://www.zabbix.com/documentation/7.0/zh/manual/appendix/functions
4 验证触发器
对于触发器 Agent 状态的验证,这里可以直接停止掉对应主机上的 zabbix-agent2 服务。当Agent 无法和服务器正常通信后,服务端的数据就不会接受到数据了。
systemctl stop zabbix-agent2
5 问题
5.1 查了问题总列表
当有任何触发器被触发后,都会在 监测 —> 问题 页面的问题列表里出现。
这里汇总了所有主机的问题,可以根据各种条件进行过滤。
同时也可以在 监测 —> 主机 页面的列表里,查看到每个主机都有几个问题。
这里要说明的是,刚才我们把 gensu-dev 主机的 Agent 停掉了,所以这里它的 ZBX 是红色的,那它的问题 也就没法获取到了。
因为 Agent 不可用的文件级别更高,所以低级别的问题就没比较显示了,这个现象也称为 收敛。
而主机 Zabbix server 是我环境里的Zabbix server部署在的服务器,有个问题 1, 就是之前 问题 页面列表里出现的一个 CPU负载的问题。
点击黄色方块中的 1 ,可以直接跳转到 问题 页面。
5.2 查看问题详情
5.3 更新处理问题
5.4 查看已经处理的问题
6 问题恢复
在刚才的主机上启动 Agent 服务
systemctl start zabbix-agent2
之后查看 监测–> 主机 页面,发现主机 gansu-dev 的 ZBX 已经回复了
问题 列表中,也会不再显示已经恢复的问题(即使是已经处理的过的问题,一会正常恢复)。