ccfos/nightingale
ccfos/nightingale has 13,470 GitHub stars and 1,798 forks. GitHot measured +2 stars in 24 hours and +42 in 7 days. Last checked 2026-11-09 17:12 UTC. Last push 2026-11-04.
Open-source, self-hosted alerting for metrics, logs, and databases. Includes a built-in AI agent and MCP server.
可以做什么
- Alerting across data sources - Use PromQL, log queries, or SQL to define conditions. Apply a rule to multiple instances of the same data source type.
- Team ownership - Group rules and dashboards by business group, assign team permissions, and connect OIDC, OAuth2, LDAP, or CAS for sign-in.
- Event processing and routing - Mute notifications, subscribe to alerts, enrich or rewrite labels, and route events through conditional pipelines.
- Alert execution records - Review evaluation queries and results, active and historical events, and notification delivery records.
实测星标增长
- 24小时
- +2
- 7天
- +42
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README_zh.md
原文开源监控告警管理专家
夜莺是什么
夜莺 Nightingale 是一款开源云原生监控告警工具,是中国计算机学会接受捐赠并托管的第一个开源项目,在 GitHub 上有超过 12000 颗星,广受关注和使用。夜莺的统一告警引擎,可以对接 Prometheus、Elasticsearch、ClickHouse、Loki、MySQL 等多种数据源,提供全面的告警判定、丰富的事件处理和灵活的告警分发及通知能力。
夜莺侧重于监控告警,类似于 Grafana 的数据源集成方式,夜莺也是对接多种既有的数据源,不过 Grafana 侧重于可视化,夜莺则是侧重于告警引擎、告警事件的处理和分发。
- 💡夜莺服务端已内置 MCP Server:n9e 进程自身在
/mcp暴露 MCP 端点,无需额外部署任何进程,AI 助手即可用自然语言查数据、管告警,详见下文 MCP Server 章节。- 夜莺监控项目,最初由滴滴开发和开源,并于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展技术委员会(CCF ODTC),为 CCF ODTC 成立后接受捐赠的第一个开源项目。

夜莺的工作逻辑
很多用户已经自行采集了指标、日志数据,此时就把存储库(VictoriaMetrics、ElasticSearch等)作为数据源接入夜莺,即可在夜莺里配置告警规则、通知规则,完成告警事件的生成和派发。

夜莺项目本身不提供监控数据采集能力。推荐您使用 Categraf 作为采集器,可以和夜莺丝滑对接。
Categraf 可以采集操作系统、网络设备、各类中间件、数据库的监控数据,通过 Remote Write 协议推送给夜莺,夜莺把监控数据转存到时序库(如 Prometheus、VictoriaMetrics 等),并提供告警和可视化能力。
对于个别边缘机房,如果和中心夜莺服务端网络链路不好,希望提升告警可用性,夜莺也提供边缘机房告警引擎下沉部署模式,这个模式下,即便边缘和中心端网络割裂,告警功能也不受影响。

上图中,机房A和中心机房的网络链路很好,所以直接由中心端的夜莺进程做告警引擎,机房B和中心机房的网络链路不好,所以在机房B部署了
n9e-edge做告警引擎,对机房B的数据源做告警判定。
MCP Server
夜莺服务端内置 MCP Server:n9e 进程自身以 Streamable HTTP 方式在 /mcp 提供 Model Context Protocol 服务,无需额外部署进程。任意 MCP 客户端(Claude Code / Claude Desktop、Cursor、ChatGPT connector、自研 Agent)都可以用自然语言查询和管理夜莺。
客户端接入
端点是 http(s)://<夜莺地址>:17000/mcp(根路径,不在 /api/n9e 下面)。鉴权用个人访问令牌(在页面上 个人信息 → Token 管理 里创建),放在 X-User-Token 请求头里:
{
"mcpServers": {
"nightingale": {
"type": "http",
"url": "http://127.0.0.1:17000/mcp",
"headers": { "X-User-Token": "<你的 token>" }
}
}
}
每次工具调用都会带着你的 token 在进程内派发到夜莺自己的 HTTP API 上,所以 RBAC、业务组权限和该用户在页面上操作时完全一致 —— 客户端拿不到 token 所属用户看不到的东西。
工具
13 个工具集共 74 个细粒度工具(42 个读、32 个写):alerts、targets、datasource、mutes、busi_groups、notify_rules、alert_subscribes、event_pipelines、users、metrics、logs、dashboards、roles。
默认只暴露只读工具,写工具(增删改)需要在配置里显式打开。
配置
下面这些都是可选项,/mcp 默认就是开启的(etc/config.toml):
[HTTP.A2A]
# DisableMCP = true # 仅关掉 /mcp(Disable = true 会把 /a2a 一起关掉)
# MCPToolsets = ["alerts", "dashboards"] # 限定暴露哪些工具集,留空 = 全部
# MCPEnableWriteTools = true # 额外注册写工具,默认只读
/mcp 的鉴权复用 [HTTP.TokenAuth],需保证后者是启用状态。
用 OAuth 2.1 替代 token
/mcp 也接受 Authorization: Bearer 形式的 OAuth access token,两种玩法:
- 夜莺自己做授权服务器(AS),支持 RFC 7591 动态客户端注册和 PKCE,Claude、ChatGPT 这类托管客户端零预注册就能连上,详见 doc/api/mcp-oauth-as.md。
- 夜莺做资源服务器(RS),验证企业既有 IdP(Keycloak、Entra ID、Okta、Auth0)签发的 token,并落到对应的本地用户,权限和审计都按人留痕,详见 doc/api/a2a-oauth-rs.md。
除 MCP 之外,同一个进程还在 /a2a 暴露 A2A 端点,把夜莺内置 AI 助手包装成标准的 Agent 供其他智能体调用,详见 doc/api/a2a.md。如果你更希望把 MCP Server 作为独立进程部署、去连远端的夜莺,独立版 n9e-mcp-server 提供的是同一套工具。
告警降噪、升级、协同
夜莺的侧重点是做告警引擎,即负责产生告警事件,并根据规则做灵活派发,内置支持 20 种通知媒介(电话、短信、邮件、钉钉、飞书、企微、Slack 等)。
如果您有更高级的需求,比如:
- 想要把公司的多套监控系统产生的事件聚拢到一个平台,统一做收敛降噪、响应处理、数据分析
- 想要支持人员的排班,践行 On-call 文化,想要支持告警认领、升级(避免遗漏)、协同处理
那夜莺是不合适的,推荐您选用 FlashDuty 这样的 On-call 产品,产品简单易用,也有免费套餐。
相关资料 & 交流渠道
- 📚 夜莺介绍PPT 对您了解夜莺各项关键特性会有帮助(PPT链接在文末)
- 👉 文档中心 为了更快的访问速度,站点托管在 FlashcatCloud
- ❤️ 报告 Bug 写清楚问题描述、复现步骤、截图等信息,更容易得到答案
- 💡 前后端代码分离,前端代码仓库:https://github.com/n9e/fe
- 🎯 关注这个公众号了解更多夜莺动态和知识
- 🌟 加我微信:
picobyte(我已关闭好友验证)拉入微信群,备注:夜莺互助群,如果已经把夜莺上到生产环境,可联系我拉入资深监控用户群
关键特性简介

- 夜莺支持告警规则、屏蔽规则、订阅规则、通知规则,内置支持 20 种通知媒介,支持消息模板自定义
- 支持事件管道,对告警事件做 Pipeline 处理,方便和自有系统做自动化整合,比如给告警事件附加一些元信息,对事件做 relabel
- 支持业务组概念,引入权限体系,分门别类管理各类规则
- 很多数据库、中间件内置了告警规则,可以直接导入使用,也可以直接导入 Prometheus 的告警规则
- 支持告警自愈,即告警之后自动触发一个脚本执行一些预定义的逻辑,比如清理一下磁盘、抓一下现场等

- 夜莺存档了历史告警事件,支持多维度的查询和统计
- 支持灵活的聚合分组,一目了然看到公司的告警事件分布情况

- 夜莺内置常用操作系统、中间件、数据库的的指标说明、仪表盘、告警规则,不过都是社区贡献的,整体也是参差不齐
- 夜莺直接接收 Remote Write、OpenTSDB、Datadog、Falcon 等多种协议的数据,故而可以和各类 Agent 对接
- 夜莺支持 Prometheus、ElasticSearch、Loki、TDEngine 等多种数据源,可以对其中的数据做告警
- 夜莺可以很方便内嵌企业内部系统,比如 Grafana、CMDB 等,甚至可以配置这些内嵌系统的菜单可见性

- 夜莺支持仪表盘功能,支持常见的图表类型,也内置了一些仪表盘,上图是其中一个仪表盘的截图。
- 如果你已经习惯了 Grafana,建议仍然使用 Grafana 看图。Grafana 在看图方面道行更深。
- 机器相关的监控数据,如果是 Categraf 采集的,建议使用夜莺自带的仪表盘查看,因为 Categraf 的指标命名 Follow 的是 Telegraf 的命名方式,和 Node Exporter 不同
- 因为夜莺有个业务组的概念,机器可以归属不同的业务组,有时在仪表盘里只想查看当前所属业务组的机器,所以夜莺的仪表盘可以和业务组联动
广受关注
感谢众多企业的信赖

社区共建
- ❇️ 请阅读浏览夜莺开源项目和社区治理架构草案,真诚欢迎每一位用户、开发者、公司以及组织,使用夜莺监控、积极反馈 Bug、提交功能需求、分享最佳实践,共建专业、活跃的夜莺开源社区。
- ❤️ 夜莺贡献者
