6 标记

概述

Zabbix提供了为各类实体添加标签的选项。标签可应用于以下对象:

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

标签具有多种用途,最显著的是用于标记事件。当实体被标记时,相应的新事件get会被同步标记:

  • 标记模板时 - 由该模板相关实体(监控项、触发器等)产生的任何主机问题都将被标记
  • 标记主机时 - 该主机的所有问题将被标记
  • 标记监控项或Web场景时 - 该监控项或Web场景的任何数据/问题将被标记
  • 标记触发器时 - 该触发器的所有问题将被标记

问题事件会继承整个模板链、主机、监控项、Web场景和触发器的所有标签。完全相同的tag:value组合(宏解析后)在标记事件时会被合并而非重复。

自定义事件标签提供了更高的灵活性。重要的是,事件可以基于标签进行correlated。在其他应用中,可基于标记事件定义动作。监控项问题可根据标签分组,问题标签还可用于将问题映射到问题标签

标签实现为标签名的组合。可单独使用名称或与值配对:

MySQL, Service:MySQL, Services, Services:Customer, Applications, Application:Java, Priority:High 

一个实体(模板、主机、监控项、Web场景、触发器或事件)可用相同名称但不同值标记 - 这些标签不会被视作"重复"。同理,无值的标签与带值的同名标签可同时使用。

使用场景

该功能的部分应用场景如下:

  1. 在前端标记触发器事件:
    • 在触发器级别定义标签,例如scope:performance;
    • 该触发器创建的所有问题都将被标记此标签。
  2. 标记所有模板继承的问题:
    • 在模板级别定义标签,例如target:MySQL;
    • 该模板触发器创建的所有主机问题都将被标记此标签。
  3. 标记所有主机问题:
    • 在主机级别定义标签,例如service:Jira;
    • 该主机触发器的所有问题都将被标记此标签。
  4. 分组相关监控项:
    • 在监控项级别定义标签,例如component:cpu;
    • 最新数据部分,使用标签过滤器查看所有标记为component:cpu的监控项。
  5. 识别日志file中的问题并单独关闭:
    • 在日志触发器中定义标签,通过{{ITEM.VALUE<N>}.regsub()}宏的值提取来识别事件;
    • 在触发器配置中设置多问题事件生成模式;
    • 在触发器配置中使用event correlation: 选择"OK事件仅关闭匹配事件"选项并指定匹配标签;
    • 查看带有标签的问题事件被单独关闭的情况。
  6. 用于过滤通知:
    • 在触发器级别定义不同标签来标记事件;
    • 在动作条件中使用标签过滤,仅接收符合标签数据的通知。
  7. 使用监控项值提取的信息作为标签值:
    • 在标签值中使用{{ITEM.VALUE<N>}.regsub()}宏;
    • 监控问题中查看从监控项值提取的标签数据。
  8. 在通知中更好识别问题:
    • 在触发器级别定义标签;
    • 在问题通知中使用{EVENT.TAGS}宏;
    • 更易识别通知所属的应用/服务。
  9. 通过模板级标签简化配置任务:
    • 在模板触发器级别定义标签;
    • 在所有从模板创建的触发器上查看这些标签。
  10. 通过低级发现(LLD)创建带标签的触发器:
    • 在触发器原型上定义标签;
    • 在标签名或值中使用LLD宏;
    • 在所有从原型创建的触发器上查看这些标签。
  11. 使用服务标签匹配服务:
    • 为服务定义匹配标签的条件;
    • 使用服务标签将服务映射到配置的SLA。
  12. 使用服务配置将服务映射到问题:
    • 在服务配置中指定问题标签,例如target:MySQL;
    • 具有匹配标签的问题将自动关联到该服务;
    • 服务状态将变更为最高严重性问题的状态。
  13. 当一个主机处于维护模式时抑制问题:
    • 配置中定义标签,仅抑制具有匹配标签的问题。
  14. 授予用户组访问权限:
    • 配置配置中指定标签,仅允许查看具有匹配标签的问题。

配置

标签可以在专用选项卡中输入,例如在触发器配置中:

宏支持

标签中的内置宏和用户宏在事件发生时解析。在事件发生之前,这些宏将在Zabbix前端显示为未解析状态。低级发现宏在发现过程中解析。

以下宏可用于触发器标签中:

  • {ITEM.VALUE}, {ITEM.LASTVALUE}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} 和 {HOST.ID} 宏可用于填充标签名称或标签值。

  • {INVENTORY.*} macros 可用于 在触发器表达式中引用一个或多个主机的主机资产记录值

  • User macros 以及带上下文的用户宏支持用于标签名称/值; 上下文可能包含低级发现宏。

  • 低级发现宏可用于标签名称/值

    trigger prototypes.

以下宏可用于基于触发器的通知:

  • {EVENT.TAGS}和{EVENT.RECOVERY.TAGS}宏将解析为 逗号分隔的事件标签或恢复事件标签列表

  • {EVENT.TAGSJSON} 和 {EVENT.RECOVERY.TAGSJSON} 宏将被解析

    to a JSON array containing event tag objects or recovery event tag objects

以下宏可用于模板、主机、监控项和网页 场景标签:

  • {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT}和{HOST.ID}宏
  • {INVENTORY.*} macros
  • User macros
  • 低级发现宏可用于监控项原型标签

以下宏可在主机原型标签中使用:

  • {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} 和 {HOST.ID} 宏
  • {INVENTORY.*} macros
  • User macros
  • Low-level discovery macros 将 在发现过程中解析并随后添加到 已发现 主机
触发器标签中的子字符串提取

支持通过子字符串提取来填充标签名称或标签值,使用宏函数function - 对通过{ITEM.VALUE}、{ITEM.LASTVALUE}宏或低级发现宏获取的值应用正则表达式。例如:

{{ITEM.VALUE}.regsub(pattern, output)}
       {{ITEM.VALUE}.iregsub(pattern, output)}
       
       {{#LLDMACRO}.regsub(pattern, output)}
       
       {{#LLDMACRO}.iregsub(pattern, output)}

如果标签名称和值在宏解析后长度超过255个字符,将被截断至255个字符。

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

查看事件标签

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

  • 监控问题
  • 监控问题事件详情
  • 监控仪表板问题 小部件

仅显示前三个标签条目。如果超过三个标签条目,将以三个点表示。将鼠标悬停在这三个点上时,所有标签条目将在弹出窗口中显示。

请注意,标签的显示顺序受标签过滤以及监控问题问题仪表板小部件过滤器中的标签显示优先级选项影响。