6 标签化

概览

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

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

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

参考官方Zabbix指南,了解关于定义标签的一般建议,以及关于 模板监控项触发器,和低级发现规则的具体指导。

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

  • 使用标记的模板 - 任何由模板创建的主机问题(由触发器触发)将继承模板标签;
  • 使用标记的主机 - 任何主机问题将继承主机标签;
  • 使用标记的监控项/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()})。
    • 监控问题 中,问题将具有标记值,该值已解析为从监控项值中提取的数据。
  6. 在日志文件中识别问题并单独关闭它们:
    • 日志监控项 的触发器定义一个触发器标记,该标记将使用宏从监控项值中提取值(例如,service:{{ITEM.VALUE<N>}.regsub()})。
    • 触发器配置 中设置 事件关联
      • 问题事件生成模式 设置为 "多个";
      • OK事件关闭 设置为 "如果标记值匹配则关闭所有问题";
      • 设置匹配的标记。
    • 由日志监控项触发器创建的问题将具有触发器标记,并将单独关闭。
  7. 过滤通知:
    • 定义触发器标记(例如,scope:security 对于触发器1和 scope:availability 对于触发器2)。
    • 动作条件 中使用标记过滤,以仅接收与标记数据匹配的事件的通知。
  8. 在通知中识别问题:
    • 定义触发器标记。
    • 在问题通知中使用 {EVENT.TAGS} 宏。
    • 问题通知将包含触发器标记,这使得更容易识别通知属于哪个应用程序/服务。
  9. 使用模板标记简化配置任务:
    • 定义一个模板触发器标记。
    • 从这个模板触发器创建的触发器将具有其标记。
  10. 从低级发现(LLD)创建带有标记的触发器:
    • 定义一个触发器原型标记,其中标记名或值包含LLD宏(例如,scope:{#FSNAME})。
    • 从触发器原型创建的触发器将具有其标记。
  11. 使用服务标记匹配服务:
    • 定义 服务标记
    • 为具有匹配标记的服务配置 服务动作
    • 另外,使用服务标记将服务链接到 SLA 以进行SLA计算。
  12. 使用服务问题标记将服务链接到问题:
    • 服务配置 中定义一个 问题标记(例如,target:mysql)。
    • 具有匹配标记的问题将自动与服务相关联,服务状态将根据配置的服务状态计算规则改变。
  13. 当主机处于维护模式时抑制问题:
    • 维护期配置 中定义标记。
    • 具有定义标记的问题将被抑制。
  14. 授予用户组访问权限:
    • 用户组配置 中定义标记。
    • 用户组中的用户将只能查看具有定义标记的问题。

配置

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

宏支持

Built-in用户宏 在标签中会在事件发生时解析。 在事件发生前,这些宏在Zabbix前端将显示为未解析状态。

低级发现宏 在发现过程中解析。

以下宏可用于触发器标签名称和值中:

  • {ITEM.VALUE}, {ITEM.LASTVALUE}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT}, 和 {HOST.ID} 内置宏
  • {INVENTORY.*} 内置宏(用于从触发器表达式中的一个或多个主机引用主机清单值)
  • 用户宏和具有上下文的用户宏(上下文可能包括低级发现宏)
  • 低级发现宏(仅在触发器原型标签中)

以下宏可用于模板、主机和项目/网络场景标签名称和值中:

  • {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个字符。

另请参阅:在 低级发现宏 中使用宏函数进行事件标记。

查看事件标签

如果定义了标签,可以在以下位置与新事件一起查看:

监控问题问题 仪表盘小组件中显示的标签顺序和数量由 标签显示优先级显示标签 过滤选项确定。

请注意,最多可以显示三个标签;如果有更多标签,将鼠标悬停在三个点上会在弹出窗口中显示所有标签。