跳到主要内容

开源告警平台怎么选

「告警平台」这个词指的是监控里最后一层:拿到数据之后,谁来判定、怎么降噪、发给谁。采集和存储不在这页的讨论范围,可视化也不在。这一层的开源选择不多,但差别很大。下面先把工具分成三类,再按六个问题逐个过。

先分清三类工具​

类别做什么代表
告警引擎自己跑查询、判定、降噪、分发Prometheus + Alertmanager、Grafana Alerting、夜莺
告警聚合层接收别的系统已经产生的告警,去重、关联、分发Keep、Alerta
值班分发排班、升级、电话叫醒多为商业产品;Grafana OnCall 开源版已归档

选型第一步是确定你缺的是哪一层。数据还没有告警,要引擎;已经有三套系统各自在报,要聚合层;告警已经够准只是没人接电话,要值班分发。

告警规则写在文件里还是页面上?​

Alertmanager 的世界里规则是 Prometheus 的 YAML,靠 reload 和 GitOps 管理,没有页面编辑,也没有权限模型。Grafana Alerting 和夜莺都在页面上配,也都能导出导入。区别在于归属:Grafana 按文件夹和组织角色,细粒度 RBAC 在企业版;夜莺按业务组,业务组同时是权限边界,谁能看、谁能改、屏蔽作用在哪,都由它决定。如果只有 SRE 维护规则,文件加 GitOps 最省;如果业务团队要自己配,页面和权限边界是硬需求。

数据在一个地方还是好几个地方?​

Alertmanager 只处理 Prometheus 判定出来的告警(Loki 的告警走它自己的 ruler)。Grafana Alerting 能跨它支持告警的任何数据源。夜莺把 Prometheus、VictoriaMetrics、Elasticsearch、Loki、ClickHouse、MySQL 等 10+ 种数据源注册进来,指标、日志、SQL 都能写规则。Keep 和 Alerta 不查数据,它们只接收告警。

降噪靠什么:分组、抑制、屏蔽、订阅​

这是三个引擎差别最大的地方。

  • Alertmanager:按标签分组成一条消息(group_by)、跨规则抑制(inhibit_rules)、一次性静默、路由上的周期静音。模型很干净,但都在配置文件里。
  • Grafana Alerting:内嵌了一个 Alertmanager,分组和静默一致,但 Grafana 托管告警不支持抑制规则。
  • 夜莺:不做标签分组,一次通知一个事件;降噪靠规则层面的合并(一条规则覆盖查询返回的所有序列)、固定和周期屏蔽(可以只屏蔽通知保留事件)、订阅规则(按条件抄送、超时升级)和事件 Pipeline(处理器改写、丢弃、回调)。跨规则抑制没有声明式写法,要用 Pipeline 改写。
  • Keep / Alerta:去重和关联是它们的主业,但前提是告警已经由别的系统产生。

如果值班流程强依赖「一条消息里看到一组告警」,Alertmanager 系更合适;如果需要按业务条件把事件分发给不同的人、并在分发前改写它,夜莺更合适。

值班的人怎么被叫醒?​

开源告警引擎里只有夜莺内置电话和短信媒介,另有钉钉、飞书、企业微信、Slack、Telegram 等共 20 种。Alertmanager 的接收器以邮件、Slack、PagerDuty、webhook 为主;Grafana 的联系点覆盖主流 IM,也没有电话短信。三者都没有排班表:值班排班在开源世界基本只能靠商业产品,Grafana OnCall 开源版已于 2026 年 3 月归档。

谁能改规则,权限边界在哪?​

Alertmanager 和 Prometheus 没有认证和权限,靠部署层面隔离。Grafana 开源版有组织角色和文件夹权限。夜莺有用户、团队、业务组三层,规则、屏蔽、订阅、设备都归属业务组,数据源可以按业务组授权。多个业务团队共用一套告警平台时,这一条往往是决定性的。

AI 能帮上什么忙?​

Alertmanager 没有内置 AI。Grafana 的 Assistant 只在 Cloud 版,开源版靠 LLM 插件和独立的 MCP server。夜莺进程内置 AI 助手和 74 个 MCP 工具,分 13 个工具集,读工具默认开、写工具默认关、没有删除工具;Claude Code、Cursor 这类客户端直接连 /mcp 端点,权限跟着用户的 token 走。Keep 把 AI 用在告警关联上。

一张表看完​

维度Prometheus + AlertmanagerGrafana Alerting夜莺KeepAlerta
类别引擎引擎引擎聚合层聚合层
规则在哪配YAML 文件页面 + provisioning页面 + 导入导出不判定不判定
数据源Prometheus支持告警的任意数据源10+ 种,指标日志 SQL接收告警接收告警
分组成一条消息有有无关联关联
跨规则抑制有无Pipeline 改写关联规则关联规则
电话短信第三方第三方内置第三方第三方
权限模型无角色 + 文件夹业务组 RBAC有有
内置 AI无仅 Cloud助手 + MCP告警关联无
许可证Apache-2.0AGPL-3.0Apache-2.0核心开源,另有企业版目录Apache-2.0

按团队画像推荐​

  • 小团队,数据全在 Prometheus,习惯 GitOps:Prometheus + Alertmanager。组件最少,模型最干净。
  • Grafana 重度用户,告警量中等,联系点够用:Grafana Alerting。少一个系统。
  • 多种数据源、业务团队自己配规则、要电话短信和国内 IM、想用 AI 排查:夜莺。完整对比见夜莺 vs Prometheus + Alertmanager和夜莺 vs Grafana Alerting。
  • 已经有三套监控各自在报警,想统一收口:Keep 或 Alerta 这类聚合层。注意夜莺不是聚合层。
  • 从 Zabbix 过来:先看Zabbix 替代方案,再看夜莺 vs Zabbix。

常见问题​

告警平台和监控系统是一回事吗?

不是。监控系统通常包含采集、存储、可视化和告警四层;这页说的告警平台只是最后一层:判定、降噪、分发。Prometheus 是存储加判定,Grafana 是可视化加告警模块,夜莺是专做告警这一层的引擎。

夜莺能接收 Alertmanager 或 Zabbix 发来的告警吗?

不能。夜莺是告警引擎,自己跑查询判定,没有入站告警接口。要汇聚多个系统已经产生的告警,看 Keep 或 Alerta 这类聚合层。

开源版有电话和短信通知吗?

夜莺有,电话和短信是开源版内置媒介。Alertmanager 和 Grafana 开源版都没有电话短信,要接 PagerDuty 这类第三方;Grafana OnCall 开源版已于 2026 年 3 月归档。


本页基于各项目 2026 年 10 月的公开文档和开源版本,只作选型参考。夜莺的数字来自构建时数据。发现过时或不准确的描述,请在 GitHub 提 issue。