2 配置触发器

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

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

其他资源:

配置

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

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

Trigger 选项卡包含所有必需的触发器属性。

所有必填输入字段都用红色星号标记。

Parameter Description
Name 触发器名称。
支持的 macros 有:{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 macros 可用于引用表达式中的第一、第二……第九个常量。
Note: 如果引用的是相对简单、直接的表达式,$1-$9 macros 将正确解析。例如,如果表达式为 last(/New host/system.cpu.load[percpu,avg1])>5,那么名称 "Processor load above $1 on {HOST.NAME}" 将自动变为 "Processor load above 5 on New host"。
Event name 如果定义了此项,该名称将用于创建问题事件名称。默认情况下,事件名称与触发器名称相同。
事件名称可用于构建包含问题数据的有意义告警(参见 示例)。
支持的宏集合与触发器名称相同,另外还支持 {TIME}、{TIMESTAMP} 和 {?EXPRESSION} expression macros。
Operational data Operational data 允许定义任意字符串以及 macros。macros 会在 Monitoring > Problems 中动态解析为实时数据。触发器名称中的 macros(见上文)会在问题发生时解析为其值,并成为静态问题名称的基础,而 operational data 中的 macros 则保留动态显示最新信息的能力。如果未在触发器级别配置 operational data,则会显示表达式中所有监控项的最新值。
支持的宏集合与触发器名称相同。
Severity 通过单击按钮设置所需的触发器 severity
Expression 用于定义问题条件的逻辑 expression
支持 time suffixesmemory size suffixes
当表达式中包含的所有条件都满足时,即表达式计算结果为 TRUE 时,将创建问题。只要表达式计算结果为 FALSE,问题就会被解决,除非在 Recovery expression 中指定了额外的恢复条件。
OK event generation OK 事件生成选项:
Expression - 基于与问题事件相同的表达式生成 OK 事件;
Recovery expression - 当问题表达式计算结果为 FALSE 且恢复表达式计算结果为 TRUE 时生成 OK 事件;
None - 在这种情况下,触发器不会自行恢复为 OK 状态。
Recovery expression 逻辑 expression(可选),用于定义在原始问题表达式已计算为 FALSE 后,问题被解决前必须满足的附加条件。
Recovery expression 对触发器 hysteresis 很有用。如果问题表达式仍为 TRUE,则仅靠恢复表达式无法解决问题。
仅当 OK event generation 选择了 'Recovery expression' 时,此字段才可用。
PROBLEM event generation mode 生成问题事件的模式:
Single - 当触发器首次进入 'Problem' 状态时生成单个事件;
Multiple - 每次触发器评估为 'Problem' 时都生成一个事件。
OK event closes 选择 OK 事件是否关闭:
All problems - 关闭此触发器的所有问题;
All problems if tag values match - 仅关闭事件标签值匹配的触发器问题。
Tag for matching 输入用于事件关联的事件标签名称。
OK event closes 属性选择 'All problems if tag values match' 时会显示此字段,并且在这种情况下为必填项。
Allow manual close 勾选后允许对由此触发器生成的问题事件进行手动关闭。在确认问题事件时可以进行手动关闭。
Menu entry name 如果不为空,这里输入的名称(最多 64 个字符)会在多个前端位置用作 Menu entry URL 参数中指定的触发器 URL 的标签。如果为空,则使用默认名称 Trigger URL
支持的宏集合与触发器名称相同,另外还支持 {EVENT.ID}、{HOST.ID} 和 {TRIGGER.ID}。
Menu entry URL 如果不为空,这里输入的 URL(最多 2048 个字符)会在多个前端位置的 event menu 中作为链接可用,例如在 Monitoring > Problems 中单击问题名称时,或在 Problems 仪表板小组件中单击时。
支持的宏集合与触发器名称相同,另外还支持 {EVENT.ID}、{HOST.ID} 和 {TRIGGER.ID}。注意:带有密钥值的用户宏不会在 URL 中解析。
Description 用于提供有关此触发器更多信息的文本字段。可包含修复特定问题的说明、负责人员的联系方式等。
支持的宏集合与触发器名称相同。
Enabled 如有需要,取消勾选此框将禁用触发器。
已禁用触发器的问题将不再显示在前端中,但不会被删除。

Tags 选项卡允许您定义触发器级别的 tags。 此触发器的所有问题都会使用这里输入的值进行标记。

此外,Inherited and trigger tags 选项允许您查看从模板继承的标签,前提是该触发器来自该模板。 如果多个模板具有相同的标签,这些标签只会显示一次,模板名称之间用逗号分隔。 触发器不会“继承”并显示主机级别的标签。

Parameter Description
Name/Value 设置自定义标签以标记触发器事件。
标签由标签名称和值组成。您可以只使用名称,也可以将其与值配对。一个触发器可以有多个同名但不同值的标签。
事件标签支持用户宏、带上下文的用户宏、低级别发现宏,以及带有 {{ITEM.VALUE}}{{ITEM.LASTVALUE}} 的宏 functions。低级别发现宏可在宏上下文中使用。
{TRIGGER.ID} 宏支持用于触发器标签值。它可用于标识从触发器原型创建的触发器,例如在维护期间抑制这些触发器产生的问题。
如果展开后的值总长度超过 255,则会被截断为 255 个字符。
请参阅事件标签支持的所有 macros
Event tags 可用于事件关联、动作条件中,也会显示在 Monitoring > ProblemsProblems 小组件中。

Dependencies 选项卡包含该触发器的所有 dependencies

单击 Add 可添加新的依赖关系。

您也可以通过打开现有触发器,单击 Clone 按钮,然后以不同名称保存来配置触发器。

触发器表达式测试

可以根据接收到的值测试表达式结果会是什么。

以下来自官方模板的表达式作为示例:

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。
这意味着当前值超过了警告值,并且已经发生问题。