夜莺-Nightingale
夜莺V7
项目介绍 功能概览
部署升级 部署升级
数据接入 数据接入
告警管理 告警管理
数据查看 数据查看
功能介绍 功能介绍
API FAQ
夜莺V6
项目介绍 架构介绍
快速开始 快速开始
黄埔营
安装部署 安装部署
升级
采集器 采集器
使用手册 使用手册
API API
数据库表结构 数据库表结构
FAQ FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵 第1章:天降奇兵
第2章:探索PromQL 第2章:探索PromQL
第3章:Prometheus告警处理 第3章:Prometheus告警处理
第4章:Exporter详解 第4章:Exporter详解
第5章:数据与可视化 第5章:数据与可视化
第6章:集群与高可用 第6章:集群与高可用
第7章:Prometheus服务发现 第7章:Prometheus服务发现
第8章:监控Kubernetes 第8章:监控Kubernetes
第9章:Prometheus Operator 第9章:Prometheus Operator
参考资料

Event Relabel 事件处理器

概述

Relabel 事件处理器是 Nightingale 告警通知流程中对事件标签进行重新标记和处理的重要环节。该处理器的功能和在数据上报时对数据进行 relabel 类似,允许您对告警事件的标签进行各种操作,包括删除、保留、重命名、合并和修改标签值等。

主要功能

  • 🏷️ 标签删除:删除不需要的标签(labeldrop)
  • 🎯 标签保留:只保留指定的标签(labelkeep)
  • 🔄 标签重命名:对标签key进行重命名(labelmap)
  • 🔧 标签合并:根据已有标签构建新标签(replace)
  • ✏️ 值修改:修改标签的value内容(replace)

使用步骤

1. 选择处理器类型

在告警规则配置页面,选择"处理器"类型为 Relabel

2. 配置操作类型

根据需求选择合适的 Action:

  • 删除标签:选择 labeldrop
  • 保留标签:选择 labelkeep
  • 重命名标签:选择 labelmap
  • 修改/构建标签:选择 replace

3. 配置匹配条件

regex 字段中设置标签key的匹配条件,支持正则表达式。

4. 设置替换内容(如需要)

根据选择的操作类型,配置相应的 replacement、target_label 等参数。

5. 测试配置

保存配置后,新的告警事件将按照设置的规则进行标签处理。

使用场景与配置示例

场景 1:删除不需要的标签

img

如上图中的告警事件,有非常多的标签,如果有的标签我们不太关心想去掉,可以通过 labeldrop 操作,将这些标签 drop 掉,比如如果想删掉 listening_10 和 host 标签,可以配置如下:

配置参数:

  • Action: labeldrop
  • Regex: listening_10|host

img

保存之后,listening_10 和 host 会被删除。

img

场景 2:只保留指定的标签

img

如上图中的告警事件,有非常多的标签,如果只想保留我们关心的标签,可以通过 labelkeep 操作,比如我们只想保留 service、name 和 addr 标签,可以配置如下:

配置参数:

  • Action: labelkeep
  • Regex: service|^name$|addr

注意:name 这样写 ^name$ 是因为其他标签包含了name,进行严格匹配

image-20240717112440461

保存之后,新的告警事件,只会保留 service|name|addr 三个标签。

image-20240717112033348

场景 3:重命名标签key

img

如上图,想将 __name__ 重命名为 name,则可以使用如下配置:

配置参数:

  • Action: labelmap
  • Regex: __(name)__
  • Replacement: $1 或固定值 name

新的 name 标签增加之后,之前的 __name__ 标签还会保留,需要再配置一个 labeldrop 删除掉。

img

保存之后,新的告警事件,__name__ 会改为 name。

img

场景 4:构建新的标签

img

如上图的告警事件,如果我们想构建一个包括了 ident+listening_10 内容的新标签,我们可以使用 replace 操作,将 ident+listening_10 合并到一起:

配置参数:

  • Action: replace
  • Target_label: addr
  • Source_labels: ["ident", "listening_10"]
  • Separator: :

img

保存之后,新的告警事件,会有一个新的 addr 标签。

img

场景 5:修改标签的value

img

如上图,如果我们修改 addr 标签,将端口部分去掉,可以使用 replace 操作:

配置参数:

  • Action: replace
  • Target_label: addr
  • Source_labels: ["addr"]
  • Regex: ([^:]+):.*
  • Replacement: ${1}

img

保存之后,新的告警事件,addr 中的端口会去掉。

img

常见使用场景

1. 标签清理

清理告警事件中的冗余标签,只保留业务关心的核心标签。

2. 标签标准化

统一标签命名规范,将不规范的标签key重命名为标准格式。

3. 环境区分

通过标签合并,构建包含环境信息的新标签,便于告警分类。

4. 敏感信息处理

去除或修改包含敏感信息的标签内容。

注意事项

  • 🔍 正则表达式:所有匹配条件都支持正则表达式,确保语法正确
  • 📋 操作顺序:多个relabel操作按配置顺序执行,注意操作间的依赖关系
  • ⚠️ 标签保留:使用labelmap重命名标签时,原标签仍会保留,需额外配置labeldrop删除
  • 🧪 充分测试:建议在生产环境使用前进行充分测试
  • 📊 性能影响:复杂的正则表达式可能影响处理性能,建议优化匹配条件
快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat