2022 Zabbix中国峰会
2022 Zabbix中国峰会

6 标签化

概览

Zabbix中标签选项可以标记各种实体,标签可在以下实体中被定义:

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

标签有多种用途,最明显的是标记事件,如果实体被标记,相应的新事件也会被标记:

  • 带标记的模板 - 该模板中相关的实体(监控项,触发器等)创建的所有主机问题将被标记
  • 带标记的主机 - 主机上的所有问题将被标记
  • 带标记的监控项,web场景 - 监控项或web场景中的所有数据或问题将被标记
  • 带标记的触发器 - 触发器上的所有问题将被标记

一个问题事件继承了模板整个链中主机,监控项,web场景,触发器的所有标签。 当标记一个事件时,完全相同的 tag:value(解析宏之后)合并到同一个,而不是复制。

允许拥有自定义事件标签时非常灵活的,重要的是,事件能基于标签进行关联 ,其他用途中,基于标签事件定义动作。基于标签将监控项问题分组。问题标签也适用于将问题匹配到服务.

标签化由一组标签名实现。你可以只使用标签名称,或带值与其匹配:

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

一个实体可能被标记为相同的名称,但有不同的值 - 这些标签不会被认为’重复‘,同样,一个没有值的标签和相同的带值的标签可以被同时使用。

用例

一些功能用例如下:

  1. 在前端标记触发器事件:
    • 在触发器层定义标签,如scope:performance;
    • 通过触发器创建的所有问题被该标签标记。
  2. 标记所有模板继承问题:
    • 在模板层上定义标签,如 target:MySQL
    • 从该模板上通过触发器创建的所有主机问题被该标签标记。
  3. 标记所有主机问题:
    • 在主机层定义标签,如 service:Jira
    • 主机触发器上的所有问题被该标签标记。
  4. 相关监控项组:
    • 在监控项级定义一个标签,如component:cpu
    • 最新数据 选项,使用标签过滤器查看标签为component:cpu的所有监控项。
  5. 识别日志文件中的问题,并分别关闭他们:
    • 在日志触发器中定义标签,通过获取{{ITEM.VALUE<N>}.regsub()}宏变量的值定义事件;
    • 在触发器配置中,设置多重事件生成模式;
    • 在触发器配置中,使用事件关联: 选择正常事件选项,仅关闭与选择的标签匹配的事件;
    • 查看使用标签创建并单独关闭的问题事件。
  6. 过滤通知信息:
    • 在触发器级上定义标签,通过不同的标签定义事件;
    • 在动作条件中使用标签过滤,仅接收与标签数据匹配的事件通知信息。
  7. 使用从监控项值中获取的信息作为标签值:
    • 在标签值中使用{{ITEM.VALUE<N>}.regsub()}宏 ;
    • 监测问题中查看从监控项中提取到的标签值 。
  8. 在通知中更好的识别问题:
    • 触发器级定义标签;
    • 在问题通知中使用{EVENT.TAGS} 宏;
    • 更容易识别通知属于何种应用或服务。
  9. 在模板级通过使用标签简化配置任务:
    • 在模板触发器级定义标签;
    • 查看从模板触发器创建的所有触发器的标签。
  10. 从低级别自动发现(LLD)创建带有标签的触发器:
    • 在触发器原型上定义标签;
    • 在标签名或值上使用LLD宏;
    • 查看从触发器原型上创建的所有触发器标签。
  11. 使用服务标签匹配服务:
  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.*} 宏可用于触发器表达式中引用一个或多个主机的主机资产值。
  • 标签名/标签值都支持用户宏和用户宏上下文,上下文宏可能包含低级别自动发现宏。
  • 在触发器原型中,低级别自动发现宏被用于标签名/标签值中。

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

  • {EVENT.TAGS} 和 {EVENT.RECOVERY.TAGS} 宏被解析为用逗号分隔的事件列表或恢复事件标签列表。
  • {EVENT.TAGSJSON} 和 {EVENT.RECOVERY.TAGSJSON}宏将被解析为包含事件标签 对象 或恢复事件标签对象的JSON数组。

以下宏可用于模板,主机,监控项和web场景标签:

  • {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.*} 宏。
  • 用户宏。
  • 低级别自动发现宏将在自动发现过程中添加发现主机期间被解析。
触发器标签中提取子字符串

支持子字符串提取填充标签名和标签值,使用宏 函数 -将正则表达式应用于通过宏支持 获取值.例如:

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

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

参阅:使用 低级别自动发现宏的宏函数进行事件标记。

查看事件标签

定义的标签,可在以下新事件中查看:

  • 监测问题
  • 监测问题事件细节
  • 仪表盘问题 部件

仅前三个标签实体被显示,如果超过3个标签实体,通过3个点表示,如果你的鼠标移到这三个点上,所有的标签将在弹出框中显示。

注意的是标签的顺序受标签过滤器和监测问题Problems 仪表盘中部件的过滤器标签显示优先级 影响。