配置触发器

本页介绍如何在 Zabbix 前端中配置触发器。

请注意,官方 Zabbix 模板包含预定义的触发器。
请参阅将模板应用于 监控 Linux 的指南。
也可以对已配置的触发器进行 批量更新。

其他资源:

配置

要配置触发器,请执行以下操作:

  1. 转到 数据采集 > 主机。
  2. 在主机所在行中单击 触发器。
  3. 单击右侧的 创建触发器(或单击触发器名称以编辑现有触发器)。
  4. 在表单中输入触发器参数。

触发器选项卡包含所有基本的触发器属性。

所有必填输入字段均以红色星号标记。

参数 描述
名称 触发器名称。
支持的宏包括:{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,则名称“Processor load above $1 on {HOST.NAME}”将自动更改为“Processor load above 5 on New host”。
事件名称 定义后,此名称将用于创建问题事件名称。默认情况下,事件名称与触发器名称相同。
事件名称可用于构建包含问题数据的有意义的告警(请参见示例)。
支持与触发器名称相同的一组宏,此外还支持 {TIME}、{TIMESTAMP} 和 {?EXPRESSION} 表达式宏。
运行数据 输入一些包含宏的字符串(最多 2048 个字符),以便在监控 > 问题中显示动态的实时数据。或者,将此字段留空,以显示触发器表达式中所有监控项的最新值。
支持与触发器名称相同的一组宏,并且能够动态解析。例如:
{ITEM.VALUE<1-9>}解析触发器状态发生变化时的监控项值(创建问题、解决问题、手动关闭问题或通过关联关闭问题时)。
{ITEM.LASTVALUE<1-9>}解析监控项的最新值。
请注意,手动关闭问题不会产生新值,因此两个宏仍会显示问题发生时的值。此外,如果最新值早于最大历史数据显示周期(请参见管理 > 常规),两个宏都会解析为 UNKNOWN。前端不支持 jsonpath 宏函数,因此它在监控 > 问题中会解析为 UNKNOWN;它仅由 Zabbix 服务器解析,例如在通知中使用 {EVENT.OPDATA} 时。
严重性 单击按钮设置所需的触发器严重性。
表达式 用于定义问题条件的逻辑表达式。
支持时间后缀和内存大小后缀。
当表达式中包含的所有条件均满足时,即表达式计算结果为 TRUE 时,将创建问题。当表达式计算结果为 FALSE 时,问题将立即解决,除非在恢复表达式中指定了其他恢复条件。
OK 事件生成 OK 事件生成选项:
表达式 - 根据与问题事件相同的表达式生成 OK 事件;
恢复表达式 - 当问题表达式计算结果为 FALSE 且恢复表达式计算结果为 TRUE 时生成 OK 事件;
无 - 在这种情况下,触发器不会自行恢复为 OK 状态。
恢复表达式 逻辑表达式(可选),用于定义在原始问题表达式已计算为 FALSE 后、问题解决前必须满足的其他条件。
恢复表达式适用于触发器滞回。如果问题表达式仍为 TRUE,则无法仅通过恢复表达式解决问题。
仅当为OK 事件生成选择“恢复表达式”时,此字段才可用。
PROBLEM 事件生成模式 生成问题事件的模式:
单个 - 触发器首次进入“问题”状态时生成单个事件;
多个 - 每次触发器评估结果为“问题”时都生成一个事件。
OK 事件关闭 选择 OK 事件关闭的对象:
所有问题 - 此触发器的所有问题;
如果标签值匹配,则关闭所有问题 - 仅关闭事件标签值匹配的触发器问题。
用于匹配的标签 输入用于事件关联的事件标签名称。
当OK 事件关闭属性选择“如果标签值匹配,则关闭所有问题”时,此字段会显示,并且为必填字段。
允许手动关闭 选中后,允许手动关闭由此触发器生成的问题事件。确认问题事件时可以手动关闭问题。
菜单项名称 如果不为空,此处输入的名称(最多 64 个字符)将在前端的多个位置用作菜单项 URL参数中指定的触发器 URL 的标签。如果为空,则使用默认名称触发器 URL。
支持与触发器名称相同的一组宏,此外还支持 {EVENT.ID}、{HOST.ID} 和 {TRIGGER.ID}。
菜单项 URL 如果不为空,此处输入的 URL(最多 2048 个字符)将在前端的多个位置作为事件菜单中的链接提供,例如,在监控 > 问题中单击问题名称时,或在问题仪表板小组件中单击问题名称时。
支持与触发器名称相同的一组宏,此外还支持 {EVENT.ID}、{HOST.ID} 和 {TRIGGER.ID}。注意:包含机密值的用户宏不会在 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。
这意味着当前值超过了警告值,并且已经发生问题。