6 标记
概述
标签由标签名称和标签值组成。
在对实体进行标签标记时,可以仅使用名称,或者将其与值配对(例如,mysql、jira、target:mysql、service:jira 等)。
可以为以下各种实体定义标签:
- 模板
- 主机
- 监控项
- Web 场景
- 触发器
- 服务
- 模板 监控项 和触发器
- 主机、监控项 和触发器原型
有关定义标签的官方 Zabbix 指南,请参考 general recommendations,以及针对以下内容的具体指南:
标签、标签、
triggers 和 标签。
标签具有多种用途,最显著的是标记 events。
当实体被标记后,与该标记实体相关的任何新事件都将继承其标签。例如:
- 使用标记的模板 —— 任何由模板中的触发器创建的 主机 问题都将继承模板标签;
- 使用标记的 主机 —— 任何 主机 问题都将继承 主机 标签;
- 使用标记的 监控项/Web 场景 —— 任何 监控项/Web 场景问题都将继承该 监控项/Web 场景的标签;
- 使用标记的触发器 —— 由该触发器创建的任何问题都将继承触发器标签。
问题事件将继承整个实体链中的所有标签 —— 模板、主机、监控项/Web 场景、触发器。
相同的 tag:value 组合(宏解析后)将合并为一个,从而避免重复。
自定义事件标签提供了更大的灵活性。例如:
- 可以根据事件标签配置 event correlation;
- 可以根据事件标签配置 action conditions;
- 可以根据事件标签对 监控项 问题进行分组;
- 问题标签可用于将问题映射到 问题标签。
实体可以使用相同的标签名称但不同的标签值进行标记(例如,component:memory 和 component:storage)。
同样,一个实体可以拥有无值的标签以及同名但带值的标签(例如,database 和 database:postgresql)。
此类标签不被视为重复。
使用场景
以下是标签的一些常见使用场景:
-
标记触发事件:
- 定义一个触发器标签(例如,
scope:performance)。 - 该触发器创建的问题将带有该触发器标签。
- 定义一个触发器标签(例如,
-
标记模板继承的问题:
- 定义一个模板标签(例如,
target:mysql)。 - 该模板中的触发器创建的问题将带有该模板标签。
- 定义一个模板标签(例如,
-
标记主机问题:
- 定义一个主机标签(例如,
service:jira)。 - 该主机中的触发器创建的问题将带有主机标签。
- 定义一个主机标签(例如,
-
过滤相关监控项:
- 定义一个监控项标签(例如,
component:cpu)。 - 在 监控 → 使用过滤器 中,可以通过
component:cpu标签过滤监控项。
- 定义一个监控项标签(例如,
-
使用从监控项值中提取的信息作为标签值:
- 定义一个标签,其值使用宏(例如,
tag-name:{{ITEM.VALUE<N>}.regsub()})。 - 在 监控 → Problems 中,问题的标签值将解析为从监控项值中提取的数据。
- 定义一个标签,其值使用宏(例如,
-
识别日志file中的问题并分别关闭:
- 为log monitoring item触发器定义一个触发器标签,该触发器将使用宏从监控项值中提取值(例如,
service:{{ITEM.VALUE<N>}.regsub()})。 - 在配置中,设置event correlation:
- 将问题事件生成模式设置为“多个”;
- 将OK事件关闭设置为“如果标签值匹配,则关闭所有问题”;
- 设置用于匹配的标签。
- 日志监控项触发器创建的问题将带有触发器标签,并将单独关闭。
- 为log monitoring item触发器定义一个触发器标签,该触发器将使用宏从监控项值中提取值(例如,
-
过滤通知:
- 定义触发器标签(例如,
scope:security用于trigger1,scope:availability用于trigger2)。 - 在action conditions中使用标签过滤,仅接收与标签数据匹配的事件通知。
- 定义触发器标签(例如,
-
在通知中标识问题:
- 定义触发器标签。
- 在问题通知中使用{EVENT.TAGS}宏。
- 问题通知将包含触发器标签,从而更容易识别通知属于哪个应用程序/服务。
-
通过使用模板标签简化配置任务:
- 定义一个模板触发器标签。
- 从该模板触发器创建的触发器将继承该标签。
-
从低级别自动发现(LLD)创建带标签的触发器:
- 在标签名称或值中定义一个带有LLD宏的触发器原型标签(例如,
scope:{#FSNAME})。 - 从触发器原型创建的触发器将继承其标签。
- 在标签名称或值中定义一个带有LLD宏的触发器原型标签(例如,
-
使用服务标签匹配服务:
- 定义服务标签。
- 为具有匹配标签的服务配置service actions。
- 此外,使用服务标签将服务链接到配置以进行SLA计算。
-
使用服务问题标签将服务与问题关联:
-
当一个主机处于维护模式时抑制问题:
- 在配置中定义标签。
- 具有已定义标签的问题将被抑制。
-
授予用户组访问权限:
- 在配置中定义标签。
- 用户组中的用户只能查看具有已定义标签的问题。
配置
标签可以在专用的标签页中定义,例如,在 配置 中:

宏支持
在事件发生时,标签中的 Built-in 和 user macros 将被解析。 在事件发生之前,这些宏将在 Zabbix 前端显示为未解析状态。
Low-level discovery macros 在发现过程中被解析。
以下宏可在触发器标签名称和值中使用:
- {ITEM.VALUE}、{ITEM.LASTVALUE}、{HOST.HOST}、{HOST.NAME}、{HOST.CONN}、{HOST.DNS}、{HOST.IP}、{HOST.PORT} 和 {HOST.ID} 内置宏
- {INVENTORY.*} 内置宏(用于从触发器表达式中的一个或多个 主机 引用 主机 库存值)
- 用户宏和带上下文的用户宏(上下文可能包含低级别自动发现宏)
- 低级别自动发现宏(仅在触发器原型标签中)
以下宏可在模板、主机 以及 监控项/web 场景标签名称和值中使用:
- {HOST.HOST}、{HOST.NAME}、{HOST.CONN}、{HOST.DNS}、{HOST.IP}、{HOST.PORT} 和 {HOST.ID} 内置宏
- {INVENTORY.*} 内置宏
- 用户宏
- 低级别自动发现宏(仅在 主机 和 监控项 原型标签中)
以下宏可在基于触发器的通知中使用:
- {EVENT.TAGS} 和 {EVENT.RECOVERY.TAGS} 内置宏(这些宏将解析为逗号分隔的事件标签或恢复事件标签列表)
- {EVENT.TAGSJSON} 和 {EVENT.RECOVERY.TAGSJSON} 内置宏(这些宏将解析为包含事件标签 事件标签 或恢复事件标签 objects 的 JSON array)
触发器标签中的子字符串提取
支持使用宏 function 对标签名称或标签值进行子字符串提取。 该函数会对 支持的 宏获取的值应用正则表达式。例如:
{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}
{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}
如果在宏解析后标签名称或值超过 255 个字符,则会被截断为 255 个字符。
另见:在 使用宏函数 中使用宏函数进行事件标记。
查看事件标签
标签(如果已定义)可以在以下位置的新事件中查看:
- 监控 → Problems
- 监控 → 问题 → 查看详情
- 仪表板 → Problems widget
显示的标签顺序和数量由 监控 → 问题 或 问题 仪表板小部件中的 标签显示优先级 和 显示标签 过滤选项决定。 请注意,最多可显示三个标签;如果标签数量超过三个,将鼠标悬停在三个点上会在弹出窗口中显示所有标签。
