写点什么

Zabbix 官方推荐的标签使用准则

作者:北海
  • 2023-03-01
    江苏
  • 本文字数:1962 字

    阅读完需:约 6 分钟

本文介绍了 Zabbix 官方所推荐的标签使用准则。这些准则虽然没有强制性,但若坚持下来能明显提升使用体验并减少长期运维成本。


另外,掌握这些技巧和细节,也有助于您更有效的建立自己的标签体系。

如何更高效的应用标签

小伙伴们对于 Zabbix 内的标签一定都很熟悉了。标签确实非常灵活,配置好了能大大提高运维工作的效率,但一个个模板、甚至一个个指标的去维护标签也是件痛苦的事情。


Argus运维平台,一个基于 Zabbix 的 IT 运维监控平台,能针对大量模板内的指标实现标签的自动化添加,并基于此提供基于标签的、跨模板的指标 Top N 功能。



官方推荐的标签使用准则

这里将分使用场景来介绍具体的标签使用准则。


注意,这些标签使用准则都是 Zabbix 官方所推荐的。

模板配置

名称

标签的名称和值大小写敏感,比如“Zabbix server”。


注意,这里所说的只是强制性的要求,所以看起来很宽松。但为了更好的效果,建议遵从下文的标签名和标签值的格式

标签

用下面推荐的标签模型使用标签来对模板进行逻辑分组。


请注意,在 Zabbix 未来的发行版中,该标签模型可能会变为强制性的。不遵循该规则的模板需要更新后才能继续使用。


模板标签



例如,模板 Huawei VRP by SNMP 包含下列标签:


class: network; target: huawei; target: huawei-vrp

标签名和标签值的格式

  • 必须小写

  • 允许下列字符:a-z, 0-9, -, _, .(字母,数字,减号,下划线,英文句号)

  • 对于单词分隔,首选连字符(减号)而不是下划线(“cloud-region”,而不是“cloud_region”)

  • 首选 ASCII 编码,但也支持 UTF-8

  • 当使用普通名词作为标签值时,以单数形式使用,除非该名词仅以复数形式使用(“pipeline”,而不是“pipelines”)

  • 每个标签名称或值的长度限制为 255 个字符

监控项

标签

用下面推荐的标签模型使用标签来对监控项进行逻辑分组。


请注意,在 Zabbix 未来的发行版中,该标签模型可能会变为强制性的。不遵循该规则的模板需要更新后才能继续使用。


监控项标签



例如,监控项 ICMP ping 包含下列标签:


component: health; component: network

更新间隔,历史和趋势数据的存储周期

如果监控项包含标签“data: raw”(主监控项或仅被其它计算型监控项所需的监控项,详见上面的表格)——那么设置历史和趋势数据的存储周期为 0 即可,因为用不着保存这些中间值。

低级自动发现规则

低级自动发现(LLD)里的监控项和触发器可以包含标签,就像常规监控项和触发器一样,但 LLD 监控项还可以有包含 LLD 宏的标签。


例如,低级自动发现监控项 Interface {#IFNAME}({#IFALIAS}) 可能包含以下标签:


component: network; description: {#IFALIAS}; interface: {#IFNAME}


如果适用,可配置 LLD 主机发现规则,将主机标签 service 分配给发现的主机,以指定资源引用。


例如,发现的主机“load_balancer”、“web01”、“web02”、“webforum”都包含下列标签:


service:webserver

触发器

用下面推荐的标签模型使用标签来对触发器进行逻辑分组。


触发器标签



例如,触发器 High ICMP ping loss 包含下列标签:


scope: availability; scope: performance

创建 webhook

参数

Webhook 使用参数来获取配置和宏的值。


以下与标签有关的宏可用于实现附加逻辑或提供补充信息:


  • {EVENT.TAGS} 或 {EVENT.TAGSJSON} - webhook 可使用这些宏以所需的格式(纯文本或结构化数据)将事件标签传递给外部系统。

webhook 标签

标签用于存储事件的数据(仅用于基于触发器的事件,即告警)。webhook 使用标签来存储从外部系统接收的令牌 ID、链接或任何其它信息,应该将这些信息存储为事件标签。创建标签名时应考虑以下规则:


  • 应避免使用触发器级别上的常用词例如,触发器会有一个 URL 标签,以记录与触发器相关的系统地址。如果 webhook 还使用 URL 标签名来存储从令牌系统检索到的链接,这将会导致混乱(将出现两个同名的标签,并且 webhook 逻辑可能会受到影响)。

  • 标签名应以唯一字符串作为前缀,以避免在不同的 webhook 中重复例如,如果 Redmine 和 Jira webhook 具有完全相同的 ticket_id 标签名(不带前缀),那么当两个 webhook 在同一动作中使用时,标签值可能会混淆。

返回值

虽然没有返回特定值的要求,但在定义 webhook 的响应时,应使用下列方法之一:


  • 如果 webhook 不使用标签:建议返回一个通用字符串(例如 OK),以表示执行成功。

  • 如果 webhook 使用标签(选中了 Process tags 复选框):webhook 应始终返回一个 JSON 对象,该对象至少包含一个空的标签对象:{tags: {}}。


示例


如果 webhook 正在使用基于令牌的系统,并希望在事件标签中存储令牌 ID,那么它仍应返回空标签以进行更新/恢复操作。这是确保 Zabbix 服务器在解析 webhook 结果时不会产生错误的唯一方法,也是确保在不需要解析现有标签时不会产生开销的唯一方法。请注意,JSON 应该作为字符串返回,而不是作为对象返回,因为 Zabbix 服务器会将对象转换为[Object object]字符串。


用户头像

北海

关注

还未添加个人签名 2023-01-31 加入

还未添加个人简介

评论

发布
暂无评论
Zabbix 官方推荐的标签使用准则_运维_北海_InfoQ写作社区