Prometheus 报警规则配置:基于 Alertmanager 的告警分发

陌明吖_5555

陌明吖_5555

2026-09-11

206人浏览

原创

Prometheus仅负责发现异常并推送告警至Alertmanager,后者执行分发、去重、合并、路由和静音;告警规则在Prometheus侧用YAML定义,含ALERT、expr、for、labels、annotations字段,Alertmanager依据标签通过route和receivers配置实现分级路由与通知。

prometheus 报警规则配置:基于 alertmanager 的告警分发

Prometheus 本身不直接发通知,它只负责“发现异常”并把告警推给 Alertmanager;真正做分发、去重、合并、路由和静音的,是 Alertmanager。要让报警规则有效落地,必须把 Prometheus 的规则定义和 Alertmanager 的分发逻辑打通——不是配完 rule_files 就完事,关键在两者的协同。

告警规则写在 Prometheus 侧

规则文件(如 alert.rules)用 YAML 定义,核心结构是 ALERT + expr + for + labels + annotations:

  • expr 是 PromQL 表达式,比如 avg by(instance)(rate(http_requests_total[5m])) ,表示某实例连续 5 分钟请求量归零
  • for 指持续满足条件的时间,避免瞬时抖动误报;建议至少设为 2–5 分钟
  • labels 不只是打标记,更是 Alertmanager 路由和分组的依据,比如加 team: "backend" 或 severity: "critical"
  • annotations 用于生成通知正文,支持模板变量如 {{ $labels.instance }} 和 {{ $value }}

Alertmanager 负责智能分发

它不看指标,只看 Prometheus 推过来的告警携带的标签。分发行为由 alertmanager.yml 中的 route 和 receivers 决定:

  • group_by 指定按哪些标签聚合成一条通知,常见组合是 ['alertname', 'severity', 'cluster'];同一组内多条告警,等 group_wait(如 30s)后合并发送
  • receiver 对应具体通知方式,比如邮件、钉钉 Webhook 或 Slack;一个 receiver 可配多个 webhook_configs 或 email_configs
  • 可通过嵌套 routes 实现分级路由,例如 severity=critical → 发给 oncall;severity=warning → 只发企业微信

避免告警泛滥的三个关键控制点

光有规则和路由还不够,得靠参数压住节奏:

  • group_interval:同一组告警再次通知的最小间隔,比如设为 4h,防止故障未恢复时每分钟都刷屏
  • repeat_interval:即使告警状态没变,也按此周期重发通知(适用于需要定期提醒的场景),一般比 group_interval 短
  • inhibit_rules:配置抑制关系,例如主机 down 了,就自动屏蔽它上面所有服务的告警,避免次要告警淹没主因

静默和调试建议

上线前建议用 Alertmanager Web UI(默认端口 9093)验证:

  • 点开 “Alerts” 页面,确认告警是否进入 Pending 或 Firing 状态
  • 点 “Silences” 手动加一条静默,测试维护窗口屏蔽效果
  • 在 “Status” → “Routing tree” 查看当前路由匹配逻辑,确认标签是否被正确识别和分流
  • 临时把 receiver 的 webhook 地址换成 http://httpbin.org/post,观察实际推送的 JSON 结构,核对 labels 和 annotations 是否完整传入
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Grafana重置admin密码
Grafana重置admin密码

本专题整合了grafana admin密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.09.02

2454

12

Grafana admin密码
Grafana admin密码

本专题整合了Grafana密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.09

730

9

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

20

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

20

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

20

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

20

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

20

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习