6 标签化
概览
Zabbix中标签选项可以标记各种实体,标签可在以下实体中被定义:
- 模板
- 主机
- 监控项
- Web场景
- 触发器
- 服务
- 模板监控项和触发器
- 主机,监控项,触发器原型
标签有多种用途,最明显的是标记事件,如果实体被标记,相应的新事件也会被标记:
- 带标记的模板 - 该模板中相关的实体(监控项,触发器等)创建的所有主机问题将被标记
- 带标记的主机 - 主机上的所有问题将被标记
- 带标记的监控项,web场景 - 监控项或web场景中的所有数据或问题将被标记
- 带标记的触发器 - 触发器上的所有问题将被标记
一个问题事件继承了模板整个链中主机,监控项,web场景,触发器的所有标签。 当标记一个事件时,完全相同的 tag:value
(解析宏之后)合并到同一个,而不是复制。
允许拥有自定义事件标签时非常灵活的,重要的是,事件能基于标签进行关联 ,其他用途中,基于标签事件定义动作。基于标签将监控项问题分组。问题标签也适用于将问题匹配到服务.
标签化由一组标签名 和 值实现。你可以只使用标签名称,或带值与其匹配:
MySQL, Service:MySQL, Services, Services:Customer, Applications, Application:Java, Priority:High
一个实体可能被标记为相同的名称,但有不同的值 - 这些标签不会被认为’重复‘,同样,一个没有值的标签和相同的带值的标签可以被同时使用。
用例
一些功能用例如下:
- 在前端标记触发器事件:
- 在触发器层定义标签,如
scope:performance
; - 通过触发器创建的所有问题被该标签标记。
- 在触发器层定义标签,如
- 标记所有模板继承问题:
- 在模板层上定义标签,如
target:MySQL
; - 从该模板上通过触发器创建的所有主机问题被该标签标记。
- 在模板层上定义标签,如
- 标记所有主机问题:
- 在主机层定义标签,如
service:Jira
; - 主机触发器上的所有问题被该标签标记。
- 在主机层定义标签,如
- 相关监控项组:
- 在监控项级定义一个标签,如
component:cpu
; - 在 最新数据 选项,使用标签过滤器查看标签为
component:cpu
的所有监控项。
- 在监控项级定义一个标签,如
- 识别日志文件中的问题,并分别关闭他们:
- 在日志触发器中定义标签,通过获取
{{ITEM.VALUE<N>}.regsub()}
宏变量的值定义事件; - 在触发器配置中,设置多重事件生成模式;
- 在触发器配置中,使用事件关联: 选择正常事件选项,仅关闭与选择的标签匹配的事件;
- 查看使用标签创建并单独关闭的问题事件。
- 在日志触发器中定义标签,通过获取
- 过滤通知信息:
- 在触发器级上定义标签,通过不同的标签定义事件;
- 在动作条件中使用标签过滤,仅接收与标签数据匹配的事件通知信息。
- 使用从监控项值中获取的信息作为标签值:
- 在标签值中使用
{{ITEM.VALUE<N>}.regsub()}
宏 ; - 在监测 → 问题中查看从监控项中提取到的标签值 。
- 在标签值中使用
- 在通知中更好的识别问题:
- 触发器级定义标签;
- 在问题通知中使用{EVENT.TAGS} 宏;
- 更容易识别通知属于何种应用或服务。
- 在模板级通过使用标签简化配置任务:
- 在模板触发器级定义标签;
- 查看从模板触发器创建的所有触发器的标签。
- 从低级别自动发现(LLD)创建带有标签的触发器:
- 在触发器原型上定义标签;
- 在标签名或值上使用LLD宏;
- 查看从触发器原型上创建的所有触发器标签。
- 使用服务标签匹配服务:
- 使用 问题标签将服务映射到问题:
- 在服务配置中,指定问题标签,如:
target:MySQL
; - 由标签匹配到的问题将自动关联到服务;
- 服务状态将更改为最严重的问题状态。
- 在服务配置中,指定问题标签,如:
- 当主机处于维护模式时,抑制问题:
- 在 维护期间 内定义的标签,仅抑制与标签匹配的问题。
- 为用户组赋权限:
- 在用户组配置中指定标签,允许查看仅匹配标签的问题。
配置
可在专属选项卡中输入标签,例如,在触发器的配置中:
宏支持
标签中的内置宏 和 用户宏 在事件发生时被解析,直到该事件发生之前,这些宏在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 仪表盘中部件的过滤器标签显示优先级 影响。