3 使用触发器进行问题检测

Zabbix 中的问题检测基于触发器

触发器用于描述问题条件,使 Zabbix 能够在问题发生时作出响应。

问题检测的完整工作流程如下:

  1. 确保您已有一个用于采集数据的监控项

  2. 为该监控项定义触发器。没有触发器,Zabbix 只会采集数据,但不会对此作出任何响应。

  3. 查看检测到的问题:

  4. 接收通知、执行远程命令(如果已定义)。

请注意,官方 Zabbix 模板包含预定义的触发器。
请参阅将模板应用于监控 Linux的指南。

什么是“触发器”?

触发器通过 trigger expression 来描述问题条件

当问题条件在现实中发生时,触发器就会“触发”(即在 Zabbix 中创建一个问题)。

问题条件可以基于最新值、平均值、发现的字符串以及许多其他 functions。对于返回值的数据类型为二进制或 JSON 的监控项,无法创建触发器。

一个简单的触发器表达式会对括号中指定的数据(通常是数据监控项和时间窗口)计算某个函数(例如表示最大值的 max()),然后将计算结果与阈值进行比较。

例如:

max(/host/vfs.fs.size[/,free],5m)<10G

如果在 5 分钟内测得的可用 disk space 始终低于 10 GB,则该触发器会触发。

触发器可以具有以下状态:

触发器状态 描述 在 Zabbix 中
OK 触发器表达式计算结果为“0”(或 FALSE) 未创建问题
问题已解决(如果之前存在)
Problem 触发器表达式计算结果为“1”(或 TRUE) 已创建问题

有时,由于某些原因,触发器表达式无法进行计算。请参见 Unknown expression state

其他资源:

计算频率

每当 Zabbix 服务器接收到属于表达式一部分的新值时,触发器都会重新计算。
收到新值后,表达式中包含的每个函数都会重新计算(而不仅仅是接收到新值的那个函数)。

此外,如果表达式包含以下任一内容,触发器还会每 30 秒(由历史同步器)重新计算一次:

仅包含趋势函数的触发器,会按照表达式中最小的时间周期进行一次求值。虽然许多触发器函数使用监控项值的历史数据,但趋势函数使用的是趋势数据。