6 标签化
概述
标签由标签名和标签值组成。
在为实体添加标签时,您可以只使用名称,也可以将其与值配对使用(例如,mysql、jira、target:mysql、service:jira 等)。
可以为以下各种实体定义标签:
- 模板
- 主机
- 监控项
- Web 场景
- 触发器
- 服务
- 模板监控项和触发器
- 主机、监控项和原型触发器
标签有多种用途,其中最重要的是用于标记事件。 当实体被添加标签后,与该已标记实体相关的任何新事件都会继承其标签。例如:
- 对于已标记的模板 - 任何主机问题(由该模板中的触发器创建)都会继承模板标签;
- 对于已标记的主机 - 任何主机问题都会继承主机标签;
- 对于已标记的监控项/Web 场景 - 任何监控项/Web 场景问题都会继承监控项/Web 场景标签;
- 对于已标记的触发器 - 任何由该触发器创建的问题都会继承触发器标签。
问题事件会继承整条实体链中的所有标签 - 模板、主机、监控项/Web 场景、触发器。
相同的 tag:value 组合(在解析宏之后)会合并为一个,从而避免重复。
自定义事件标签提供了更大的灵活性。例如:
实体可以使用相同的标签名但不同的标签值进行标记(例如,component:memory 和 component:storage)。
同样,实体可以同时拥有一个不带值的标签和一个带值的同名标签(例如,database 和 database:postgresql)。
此类标签不视为重复。
用例
标记的常见用例如下:
-
标记触发器事件:
- 定义一个触发器标签(例如,
scope:performance)。 - 由此触发器创建的问题将带有该触发器标签。
- 定义一个触发器标签(例如,
-
标记继承自模板的问题:
- 定义一个模板标签(例如,
target:mysql)。 - 由此模板中的触发器创建的问题将带有该模板标签。
- 定义一个模板标签(例如,
-
标记主机问题:
- 定义一个主机标签(例如,
service:jira)。 - 由此主机中的触发器创建的问题将带有该主机标签。
- 定义一个主机标签(例如,
-
过滤相关监控项:
- 定义一个监控项标签(例如,
component:cpu)。 - 在 Monitoring → Latest data 中,可以按
component:cpu标签过滤监控项。
- 定义一个监控项标签(例如,
-
使用从监控项值中提取的信息作为标签值:
- 定义一个将宏作为标签值的标签(例如,
tag-name:{{ITEM.VALUE<N>}.regsub()})。 - 在 Monitoring → Problems 中,问题的标签值将解析为从监控项值中提取的数据。
- 定义一个将宏作为标签值的标签(例如,
-
识别日志文件中的问题并分别关闭:
-
过滤通知:
- 定义触发器标签(例如,trigger1 使用
scope:security,trigger2 使用scope:availability)。 - 在 action conditions 中使用标签过滤,仅接收与标签数据匹配的事件通知。
- 定义触发器标签(例如,trigger1 使用
-
在通知中识别问题:
- 定义触发器标签。
- 在问题通知中使用 {EVENT.TAGS} 宏。
- 问题通知将包含触发器标签,从而更容易识别该通知属于哪个应用程序/服务。
-
通过使用模板标签简化配置任务:
- 定义一个模板触发器标签。
- 从此模板触发器创建的触发器将带有其标签。
-
使用低级别发现(LLD)中的标签创建触发器:
- 在标签名称或值中定义一个带有 LLD 宏的触发器原型标签(例如,
scope:{#FSNAME})。 - 从该触发器原型创建的触发器将带有其标签。
- 在标签名称或值中定义一个带有 LLD 宏的触发器原型标签(例如,
-
使用服务标签匹配服务:
- 定义 service tags。
- 为具有匹配标签的服务配置 service actions。
- 此外,还可以使用服务标签将服务链接到 SLA 以进行 SLA 计算。
-
使用服务问题标签将服务链接到问题:
- 在 service configuration 中定义一个 problem tag(例如,
target:mysql)。 - 具有匹配标签的问题将自动关联到该服务,并且服务状态将根据已配置的服务状态计算规则发生变化。
- 在 service configuration 中定义一个 problem tag(例如,
-
当主机处于维护模式时抑制问题:
- 在 maintenance period configuration 中定义标签。
- 具有所定义标签的问题将被抑制。
-
授予用户组访问权限:
- 在 user group configuration 中定义标签。
- 用户组中的用户将只能查看具有所定义标签的问题。
配置
标签可以在专用选项卡中定义,例如在触发器配置中:

宏支持
标签中的内置宏和用户宏会在事件发生时解析。 在事件发生之前,这些宏在 Zabbix 前端中将显示为未解析状态。
低级发现宏会在发现过程中解析。
以下宏可用于触发器标签名称和值:
- {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}、{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} 内置宏(这些宏将解析为包含事件标签对象或恢复事件标签对象的 JSON 数组)
触发器标签中的子字符串提取
支持使用宏 函数 来填充标签名称或标签值时进行子字符串提取。 该函数会将正则表达式应用于由 支持的 宏获取的值。例如:
{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}
{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}
如果标签名称或值在宏解析后超过 255 个字符,则会被截断为 255 个字符。
另请参见:在事件标签中使用 低级别发现宏 的宏函数。
查看事件标签
如果已定义标签,可以在以下位置查看新事件中的标签:
显示的标签顺序和数量由 标签显示优先级 和 显示标签 过滤选项决定,这些选项位于 监控 → 问题 或 问题 仪表板小组件中。 请注意,最多可显示三个标签;如果标签超过三个,将鼠标悬停在三个点上会在弹出窗口中显示所有标签。
