Grafana告警迁移:如何获取新格式的告警规则、联系点与策略?
Grafana旧版告警格式转新版统一告警格式解决方案
问题背景
从Grafana V7.x迁移至V9.x,已配置启用统一告警、关闭旧版告警:
[alerting] enabled = false [unified alerting] enabled = true
UI可正常显示告警规则与联系点,但调用api/v1/provisioning/contact-points和api/ruler/grafana/api/v1/rules/接口返回的仍是旧版格式,无法用于文件配置(测试验证旧格式配置失败,新格式可正常生效)。旧版notifiers与新版contactPoints格式差异显著(如新版包含receivers字段),告警规则的新旧格式也不兼容,手动转换效率极低,需找到自动转换或直接获取新格式的可行方法。
可行解决路径
1. 确认API端点正确性
Grafana统一告警的API端点与旧版不兼容,需使用对应新版端点:
- 联系点:
api/v1/provisioning/contact-points是正确端点,但如果返回旧格式,可能是迁移未彻底完成。可先在UI手动创建一个测试联系点,再调用该接口获取,确认返回格式是否为新版。 - 告警规则:统一告警的规则API为
api/v1/provisioning/alert-rules,旧版端点api/ruler/grafana/api/v1/rules/仅用于兼容旧版,返回旧格式属于正常情况。
2. 触发完整告警迁移
即使已启用统一告警,部分旧版资源可能未完成自动迁移,需重新触发:
- 确认
[alerting] enabled = false、[unified alerting] enabled = true配置正确,重启Grafana。 - 进入UI告警页面,若存在“迁移旧版告警”提示,点击触发迁移操作。
- 迁移完成后,调用正确的新版API端点获取资源。
3. 通过UI导出直接获取新格式
在Grafana UI中直接导出符合配置要求的新版格式:
- 联系点:进入「Alerting」→「Contact points」,点击目标联系点的「Export」按钮,直接获取可用于文件配置的JSON格式。
- 告警规则:进入「Alerting」→「Alert rules」,选择目标规则后点击「Export」按钮,导出新版格式的规则配置。
4. 批量转换脚本(适用于大量资源)
若存在大量旧格式资源,可编写脚本批量转换:
- 旧版
notifiers转contactPoints:将旧版settings字段映射至新版settings,添加receivers数组(对应旧版通知目标),匹配设置type字段与旧版通知类型。 - 旧版告警规则转新版:将旧版
condition转换为新版expr表达式,调整annotations和labels结构,补充for、interval等统一告警必填字段。
转换时可参考官方文档中的统一告警配置示例,确保格式匹配。
注意事项
- 建议使用V9.x最新稳定版,早期V9版本可能存在迁移或API兼容性问题。
- 文件配置需严格遵循官方要求,将联系点、告警规则配置文件放置在指定的
provisioning/alerting目录下。
内容的提问来源于stack exchange,提问作者realtest0000
相关产品推荐
相关产品推荐

