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

事件标签

概述

在Zabbix中有一个定义自定义事件标签的选项。该标签可以在模板、主机和触发器级别定义。

定义标签后,将使用标签数据标记相应的新事件:

  • 模板级别的标签——由该模板的触发器生成的主机问题将被标记
  • 主机级别的标签——该主机的所有问题将会被标记
  • 触发器级别的标签——该触发器产生的问题将被标记

事件从模板、主机、触发器的整个链路中继承所有标签。在标记事件时,完全相同的tag:value组合(在解析之后)会合并成一个,而不是产生重复的多个标记。

拥有自定义事件标签可提供更大的灵活性。最重要的是,可以基于事件标签进行事件关联。另外,可以根据事件标签定义动作。

事件标签的展示形式为一对tag name(标签名)value(值)。可以只使用标签名或将其与一个值配对:

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

一个(触发器、模板、主机或事件)实体可能有多个名称相同但是值不同的标签——这些标签不会被视为“重复项”。例如,空值和有值的同名标签可以同时使用。

主机原型和从原型创建的主机不支持使用标签。

使用示例

该功能的一些使用示例如下:

  1. 在前端标记触发器事件
   * 在触发器级别定义标签; 
          * 在//Monitoring// ——> //Problems// 页面查看所有被这些标签标记的触发器问题。
       - 标记所有继承自模板的问题 
          * 在模板级别定义标签,例如 'App=MySQL'
          * 在//Monitoring// ——> //Problems// 页面查看所有被通过模板触发器创建标签标记的主机问题。
       - 标记所有主机问题 
          * 在主机级别定义标签,例如 'Service=JIRA'
          * 在//Monitoring// ——> //Problems// 页面查看被这些标签标记的所有主机触发器问题。
       - 识别日志文件中的问题并分别将其关闭
          * 在日志触发器中定义标签,这些标签将使用''%%{{%%ITEM.VALUE<N>}.regsub()}'' 宏解析的值来识别事件;
          * 触发器配置中''问题事件生成模式(PROBLEM event generation mode)''选择''多重(Mulitple)''
          * 触发器配置中使用 [[zh:manual/config/event_correlation|事件关联]]:在选项''事件成功关闭(OK event closes)''中选择''所有问题如果标签值匹配(All problems if tag values match)'',然后在''匹配标签(Tag for matching)''中输入要匹配的标签;
          * 查看使用标签创建并分别关闭的问题事件。
       - 用标签来过滤通知
          * 在触发器级别定义标签,以通过不同的标签标记事件;
          * 在动作条件下使用标签过滤,对仅与标签数据匹配的事件上接收通知。
       - 使用从监控项的值中提取的信息作为标签值
          * 在标签值中使用宏 ''%%{{%%ITEM.VALUE<N>}.regsub()}'' ;
          * 在 //Monitoring// → //Problems// 页面查看从监控项值中提取的数据作为标签值的问题。
       - 在通知中更好地识别问题
          * 在触发器级别定义标签;
          * 在问题通知中使用宏 {EVENT.TAGS} ; 
          * 更容易识别通知所属的应用程序/服务。
       - 通过在模板级别使用标签简化配置任务 
          * 在模板触发器级别定义标签; 
          * 在模板触发器创建的所有触发器上查看这些标签。
       - 使用低级发现(LLD)中的标签创建触发器 
          * 在触发器原型上定义标签; 
          * 在标签名或值中使用LLD宏;
          * 在触发器原型创建的所有触发器上查看这些标签.

配置

事件标签可以在如下配置中进行配置:

  • 模板配置 - 链接到主机时影响模板中的所有触发器
  • 主机配置 - 影响主机的所有触发器
  • 单个触发器配置:

可以为触发器、模板触发器和触发器原型定义事件标签。

支持的宏

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

  • {ITEM.VALUE}, {ITEM.LASTVALUE}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} 和 {HOST.ID} 这些宏可被填写到标签名或标签值中。
  • {INVENTORY.*} 可在触发器表达式中用于从一个或多个主机中获取主机资产信息 (从 4.0.0 开始支持)。
  • 用户宏 标签名/值支持用户宏上下文。用户宏上下文可能包括低级发现宏。
  • 低级发现宏可用于触发器原型中的标签名/值。

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

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

以下宏可用于模板和主机级标签:

  • {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} 和 {HOST.ID} 宏
  • {INVENTORY.*}
  • 用户宏
触发器标签中使用提取的字符串

支持使用宏中提取的字符串来作为标签名或标签值-将正则表达式应用于宏{ITEM.VALUE}, {ITEM.LASTVALUE}或低级发现宏中,例如:

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

如果宏解析后的标签名或值的长度超过255个字符,则标签名或值将被剪切为255个字符。

也可参照: 在 低级发现宏 中使用宏函数进行事件标记。.

查看事件标签

事件标签(如果已定义)可以在如下产生的新事件列表的页面查看:

  • MonitoringProblems
  • MonitoringProblemsEvent details
  • MonitoringDashboardProblems widget (将鼠标移动到问题名称上时打开的弹出窗口中)

仅显示前三个标签条目。如果有三个以上的标签条目,则用三个点表示。如果将鼠标移动到这三个点上时,所有标签条目都将显示在弹出窗口中。

注意,标签的显示顺序受筛选器和页面MonitoringProblems仪表板小构件Problems标签显示优先级 选项的影响。