6 标记

概述

标签由标签名称和标签值组成。
在对实体进行标签标记时,可以仅使用名称,或者将其与值配对(例如,mysqljiratarget:mysqlservice:jira 等)。

可以为以下各种实体定义标签:

  • 模板
  • 主机
  • 监控项
  • Web 场景
  • 触发器
  • 服务
  • 模板 监控项 和触发器
  • 主机、监控项 和触发器原型

有关定义标签的官方 Zabbix 指南,请参考 general recommendations,以及针对以下内容的具体指南:
标签标签
triggers标签

标签具有多种用途,最显著的是标记 events
当实体被标记后,与该标记实体相关的任何新事件都将继承其标签。例如:

  • 使用标记的模板 —— 任何由模板中的触发器创建的 主机 问题都将继承模板标签;
  • 使用标记的 主机 —— 任何 主机 问题都将继承 主机 标签;
  • 使用标记的 监控项/Web 场景 —— 任何 监控项/Web 场景问题都将继承该 监控项/Web 场景的标签;
  • 使用标记的触发器 —— 由该触发器创建的任何问题都将继承触发器标签。

问题事件将继承整个实体链中的所有标签 —— 模板、主机、监控项/Web 场景、触发器。
相同的 tag:value 组合(宏解析后)将合并为一个,从而避免重复。

自定义事件标签提供了更大的灵活性。例如:

实体可以使用相同的标签名称但不同的标签值进行标记(例如,component:memorycomponent:storage)。
同样,一个实体可以拥有无值的标签以及同名但带值的标签(例如,databasedatabase:postgresql)。
此类标签不被视为重复。

使用场景

以下是标签的一些常见使用场景:

1。标记触发事件: - 定义一个触发器标签(例如,scope:performance)。 - 该触发器创建的问题将带有该触发器标签。

2。标记模板继承的问题: - 定义一个模板标签(例如,target:mysql)。 - 该模板中的触发器创建的问题将带有该模板标签。

3。标记主机问题: - 定义一个主机标签(例如,service:jira)。 - 该主机中的触发器创建的问题将带有主机标签。

4。过滤相关监控项: - 定义一个监控项标签(例如,component:cpu)。 - 在 监控使用过滤器 中,可以通过component:cpu标签过滤监控项。

5。使用从监控项值中提取的信息作为标签值: - 定义一个标签,其值使用宏(例如,tag-name:{{ITEM.VALUE<N>}.regsub()})。 - 在 监控Problems 中,问题的标签值将解析为从监控项值中提取的数据。

6。识别日志file中的问题并分别关闭: - 为log monitoring item触发器定义一个触发器标签,该触发器将使用宏从监控项值中提取值(例如,service:{{ITEM.VALUE<N>}.regsub()})。 - 在配置中,设置event correlation: - 将问题事件生成模式设置为“多个”; - 将OK事件关闭设置为“如果标签值匹配,则关闭所有问题”; - 设置用于匹配的标签。 - 日志监控项触发器创建的问题将带有触发器标签,并将单独关闭。

7。过滤通知: - 定义触发器标签(例如,scope:security用于trigger1,scope:availability用于trigger2)。 - 在action conditions中使用标签过滤,仅接收与标签数据匹配的事件通知。

8。在通知中标识问题: - 定义触发器标签。 - 在问题通知中使用{EVENT.TAGS}宏。 - 问题通知将包含触发器标签,从而更容易识别通知属于哪个应用程序/服务。

9。通过使用模板标签简化配置任务: - 定义一个模板触发器标签。 - 从该模板触发器创建的触发器将继承该标签。

10。从低级别自动发现(LLD)创建带标签的触发器: - 在标签名称或值中定义一个带有LLD宏的触发器原型标签(例如,scope:{#FSNAME})。 - 从触发器原型创建的触发器将继承其标签。

11。使用服务标签匹配服务: - 定义服务标签。 - 为具有匹配标签的服务配置service actions。 - 此外,使用服务标签将服务链接到配置以进行SLA计算。

12。使用服务问题标签将服务与问题关联: - 在服务配置中定义问题标签(例如,target:mysql)。 - 具有匹配标签的问题将自动关联到该服务,并且服务状态将根据配置的服务状态计算规则更改。

13。当一个主机处于维护模式时抑制问题: - 在配置中定义标签。 - 具有已定义标签的问题将被抑制。

14。授予用户组访问权限: - 在配置中定义标签。 - 用户组中的用户只能查看具有已定义标签的问题。

配置

标签可以在专用的标签页中定义,例如,在 配置 中:

宏支持

在事件发生时,标签中的 Built-inuser 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 个字符。

另见:在 使用宏函数 中使用宏函数进行事件标记。

查看事件标签

标签(如果已定义)可以在以下位置的新事件中查看:

显示的标签顺序和数量由 监控问题问题 仪表板小部件中的 标签显示优先级显示标签 过滤选项决定。 请注意,最多可显示三个标签;如果标签数量超过三个,将鼠标悬停在三个点上会在弹出窗口中显示所有标签。