2 配置触发器
本页介绍如何在 Zabbix 前端中配置触发器。
请注意,官方 Zabbix 模板包含预定义的触发器。
请参阅将模板应用于监控 Linux的指南。
也可以对已配置的触发器进行批量更新。
其他资源:
- 使用触发器进行问题检测(总体介绍)
- 触发器示例(按使用场景分类)
- 触发器表达式(语法细节)
- 最佳实践
配置
要配置触发器,请执行以下操作:
- 前往:数据采集 > 主机
- 在该主机所在行中点击 触发器
- 点击右侧的 创建触发器(或点击触发器名称以编辑现有触发器)
- 在表单中输入触发器参数
触发器 选项卡包含所有基本的触发器属性。

所有必填输入字段都以红色星号标记。
| 参数 | 描述 |
|---|---|
| 名称 | 触发器名称。 支持的 宏 有:{HOST.HOST}、{HOST.NAME}、{HOST.PORT}、{HOST.CONN}、{HOST.DNS}、{HOST.IP}、{ITEM.VALUE}、{ITEM.VALUE.AGE}、{ITEM.VALUE.DATE}、{ITEM.VALUE.TIME}、{ITEM.VALUE.TIMESTAMP}、{ITEM.LASTVALUE}、{ITEM.LASTVALUE.AGE}、{ITEM.LASTVALUE.DATE}、{ITEM.LASTVALUE.TIME}、{ITEM.LASTVALUE.TIMESTAMP}、{ITEM.LOG.*} 以及 {$MACRO} 用户宏。 $1、$2...$9 宏可用于引用表达式中的第一个、第二个……第九个常量。 注意:如果引用的是相对简单、直接的表达式中的常量,$1-$9 宏将能够被正确解析。例如,如果表达式为 last(/New host/system.cpu.load[percpu,avg1])>5,则名称“{HOST.NAME} 上的处理器负载高于 $1”将自动变为“New host 上的处理器负载高于 5”。 |
| 事件名称 | 定义后,此名称将用于创建问题事件名称。默认情况下,事件名称与触发器名称相同。 事件名称可用于构建包含问题数据的有意义告警(参见示例)。 支持与触发器名称相同的一组宏,另外还支持 {TIME}、{TIMESTAMP} 和 {?EXPRESSION} 表达式宏。 |
| 运行数据 | 运行数据允许定义包含宏的任意字符串。这些宏将在 监控 > 问题 中动态解析为实时数据。触发器名称中的宏(见上文)会在问题发生时解析为其对应值,并作为静态问题名称的基础;而运行数据中的宏则能够持续动态显示最新信息。如果未在触发器级别配置运行数据,则将显示表达式中所有监控项的最新值。 支持与触发器名称相同的一组宏。 |
| 严重性 | 通过点击按钮设置所需的触发器严重性。 |
| 表达式 | 用于定义问题条件的逻辑表达式。 支持时间后缀和内存大小后缀。 当表达式中包含的所有条件都满足时,即表达式计算结果为 TRUE 时,将创建一个问题。当表达式计算结果变为 FALSE 时,问题将立即恢复,除非在 恢复表达式 中指定了额外的恢复条件。 |
| OK 事件生成 | OK 事件生成选项: 表达式 - OK 事件基于与问题事件相同的表达式生成; 恢复表达式 - 当问题表达式计算结果为 FALSE 且恢复表达式计算结果为 TRUE 时生成 OK 事件; 无 - 在这种情况下,触发器将永远不会自行返回到 OK 状态。 |
| 恢复表达式 | 逻辑表达式(可选),用于定义在原始问题表达式已计算为 FALSE 之后,问题恢复前还必须满足的附加条件。 恢复表达式对于触发器滞后很有用。如果问题表达式仍为 TRUE,则不能仅通过恢复表达式来恢复问题。 仅当 OK 事件生成 选择了“恢复表达式”时,此字段才可用。 |
| PROBLEM 事件生成模式 | 问题事件生成模式: 单个 - 当触发器首次进入“Problem”状态时生成单个事件; 多个 - 每次触发器被评估为“Problem”时都会生成一个事件。 |
| OK 事件关闭 | 选择 OK 事件关闭方式: 所有问题 - 此触发器的所有问题; 如果标签值匹配则关闭所有问题 - 仅关闭事件标签值匹配的那些触发器问题。 |
| 用于匹配的标签 | 输入用于事件关联的事件标签名称。 当 OK 事件关闭 属性选择“如果标签值匹配则关闭所有问题”时,将显示此字段,并且在这种情况下为必填项。 |
| 允许手动关闭 | 勾选此项以允许对该触发器生成的问题事件进行手动关闭。手动关闭可在确认问题事件时执行。 |
| 菜单项名称 | 如果不为空,此处输入的名称(最多 64 个字符)将在前端的多个位置中用作 菜单项 URL 参数中指定的触发器 URL 的标签。如果为空,则使用默认名称 Trigger URL。 支持与触发器名称相同的一组宏,另外还支持 {EVENT.ID}、{HOST.ID} 和 {TRIGGER.ID}。 |
| 菜单项 URL | 如果不为空,此处输入的 URL(最多 2048 个字符)将在前端多个位置的事件菜单中作为链接提供,例如,在 监控 > 问题 中点击问题名称时,或在 问题 仪表板小部件中点击问题名称时。 支持与触发器名称相同的一组宏,另外还支持 {EVENT.ID}、{HOST.ID} 和 {TRIGGER.ID}。注意:具有 secret 值的用户宏不会在 URL 中被解析。 |
| 描述 | 用于提供有关此触发器更多信息的文本字段。可包含修复特定问题的说明、负责人员的联系方式等。 支持与触发器名称相同的一组宏。 |
| 已启用 | 如有需要,取消勾选此框将禁用该触发器。 已禁用触发器的问题将不再显示在前端中,但不会被删除。 |
标签 选项卡允许您定义触发器级别的标签。
此触发器的所有问题都将带有此处输入的标签值。

此外,如果触发器来自某个模板,继承的标签和触发器标签 选项允许您查看在该模板级别定义的标签。 如果多个模板具有相同的标签,这些标签只显示一次,模板名称之间以逗号分隔。 触发器不会“继承”并显示主机级别的标签。
| 参数 | 描述 |
|---|---|
| 名称/值 | 设置自定义标签以标记触发器事件。 标签由标签名称和值组成。您可以只使用名称,也可以将其与值配对使用。一个触发器可以有多个同名但值不同的标签。 事件标签中支持用户宏、带上下文的用户宏、低级发现宏,以及带有 {{ITEM.VALUE}}、{{ITEM.LASTVALUE}} 的宏函数。低级发现宏可在宏上下文中使用。触发器标签值中支持 {TRIGGER.ID} 宏。它可用于标识从触发器原型创建的触发器,例如在维护期间抑制这些触发器产生的问题。 如果展开后的总值长度超过 255,则会被截断为 255 个字符。 查看事件标签支持的所有宏。 事件标签可用于事件关联、操作条件,也会显示在 监控 > 问题 或 问题 小部件中。 |
依赖关系 选项卡包含该触发器的所有依赖关系。
点击 添加 以添加新的依赖关系。
您还可以通过打开一个现有触发器,点击 克隆 按钮,然后以不同名称保存的方式来配置触发器。
触发器表达式测试
可以测试在接收到某个值时,表达式结果会是什么。
以下以一个官方模板中的表达式为例:
avg(/Cisco IOS SNMPv2/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_WARN}
or
last(/Cisco IOS SNMPv2/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_WARN_STATUS}
要测试该表达式,请点击表达式字段下方的 Expression constructor。

在 Expression constructor 中,会列出所有单独的表达式。 要打开测试窗口,请点击表达式列表下方的 Test。

在测试窗口中,您可以输入示例值(本例中为“80”、“70”、“0”、“1”),然后点击 Test 按钮查看表达式结果。

可以看到各个单独表达式以及整个表达式的结果。
“TRUE”表示指定的表达式正确。 在本例的情况 A 中,“80”大于 {$TEMP_WARN} 指定的值,即本例中的“70”。 如预期所示,结果显示为“TRUE”。
“FALSE”表示指定的表达式不正确。 在本例的情况 B 中,{$TEMP_WARN_STATUS} “1”需要与指定值相等,即本例中的“0”。 如预期所示,结果显示为“FALSE”。
所选的表达式类型为“OR”。 如果指定条件中至少有一个(本例中为 A 或 B)为 TRUE,则整体结果也将为 TRUE。 这意味着当前值超过了告警值,并且已经发生了问题。