极豆科技夜莺监控实践:20 个 K8s 集群统一监控与告警治理

极豆科技 2026-03-16 10:06:30

夜莺项目开源地址:https://github.com/ccfos/nightingale 欢迎收藏,欢迎分享您的落地案例。

公司和业务介绍

极豆科技成立于2014年,站在车企立场,立足产业创新,为车企提供汽车座舱AI及数字化解决方案,提升汽车智能化水平和用户体验,挖掘用户全生命周期价值,赋能车企数字化转型。深耕产业10年,成为众多豪华、合资、自主、新势力等车企Tier1供应商,凭借在行业认知、车企客户资源、数据规模、应用场景等方面的优势,基于多家车企超1000万车辆和用户数据,使用行业领先模型,并对基础模型进行训练和微调,研发一系列座舱大模型应用产品和服务,针对不同场景和用户需求,生成文本、知识库、语音、图像、视频以及多模态的内容,提升座舱智能化体验。

背景与痛点:监控体系的“碎片化”危机

在业务快速扩张过程中,我们管理着20个Kubernetes生产集群,自营业务的Kubernetes集群5个,客户托管代维集群15个,每个集群均独立部署了监控体系:

  • 每套集群部署 Prometheus + Grafana + Alertmanager,告警规则散落在各套集群中,管理不便,也不方便后续的统一分析、治理
  • 部分客户也需要告警接受媒介,存在多个IM都需要一条告警,且告警需要存在一定的分级。

这种模式很快暴露出以下问题:

问题类型 具体表现
资源浪费 每套Prometheus需要一定资源
配置割裂 告警规则在每个Alertmanager中独立维护,版本差异率达35%
管理黑洞 跨集群故障排查需切换每个Grafana实例,浪费定位问题时间
消息壁垒 告警无交互式操作,存在多人都去处理排查一个告警
配置紊乱 部分客户需要在其对应的IM中得到重要告警通知,导致配置十分紊乱

选型思考:为什么是夜莺(Nightingale)?

我们对比了三大技术路线:

方案 优势 劣势 评分
Thanos 原生云原生,适合超大规模 部署复杂度高,学习曲线陡峭;国内使用较少 ★★☆
Zabbix + Grafana 成熟稳定,社区支持广 K8s监控能力弱,主要侧重设备监控 ★★
夜莺 多数据源、多集群支持,告警通知灵活 最初由滴滴开源,非国际大厂出品 ★★★★★

关键决策因素:

  1. 成本效率

    • 夜莺单集群可对接多数据源,替代原来每套 K8s 独立的监控体系,统一管理
    • 资源消耗降低,监控系统本身的运维成本降低
    • 与 Prometheus 相同的数据传输协议,既可以接收 Remote Write 数据上报,也可以主动抓取业务暴露的 /metrics 数据
    • 内置 业务组权限隔离,满足独立运维需求,各个团队可以分别管理自己规则、仪表盘,省的啥事都来找我们团队
  2. 告警治理能力

    • 动态路由:基于 cluster 标签自动分发告警,每个 K8s 集群的数据都统一带上 cluster 标签
    • 智能抑制:避免 K8s 节点宕机时产生数百条重复告警,这里用 AI 写了一个简单的告警聚合降噪模块,除了夜莺的告警之外,也一并处理公司内部其他监控系统、安全系统产生的告警事件,统一降噪分发
    • 交互式操作:支持在国内主流 IM 中屏蔽告警,夜莺所有的操作都提供 API,使用 API 即可完成屏蔽,可以短期屏蔽一段时间,也可以周期性屏蔽

最终架构:统一监控平台的落地实践

首先把所有数据源接入夜莺,有些 Prometheus 直接接入,有些有聚合分析的需求则在 Prometheus 配置 Remote Write 写入 VictoriaMetrics,再把 VictoriaMetrics 作为数据源接入夜莺。

Nightingale DataSource Integrations

夜莺的核心职能:

模块 职能 业务价值
数据接入层 聚合多集群指标,相当于一个 Pushgateway 网关 消除跨集群查询门槛,故障定位时间缩短至15分钟内
告警引擎 基于标签的动态路由(如cluster=shanghai → 上海值班组) 告警误报率下降76%,关键告警到达率100%
可视化告警配置 可以在图形化页面配置告警,支持导入导出功能,可列出活跃告警 降低使用告警规则使用门槛,各团队自助操作
多消息通知渠道 可以通知企业微信,钉钉,飞书等国内主流IM渠道 客户用哪个 IM 都可以收到告警,避免配置文件中进行配置

夜莺除了支持 Prometheus、VictoriaMetrics 的告警,也支持 ElasticSearch、Loki 等日志源的告警。上了夜莺之后,我们就下掉了 ESAlert(原本用于 ElasticSearch 的告警),使用一个平台统一管理。

但是夜莺不支持 Skywalking 的告警,我们就想做一个统一的告警分发中心,同时接收夜莺、Skywalking、Falco 的告警,做告警聚合降噪。在这个项目中我参考了 Flashduty 和 博哥爱运维的大监控告警中心项目,在此致谢。

统一告警分发平台的架构图如下:

统一告警分发平台

告警事件由夜莺产生,做一些 Pipeline 二次处理,然后回调我们的统一告警分发平台(内部叫“谛听”),谛听生成 IM 卡片,流程图如下:

系统交互图

最终的效果图如下:

告警效果图-1 告警效果图-2

未来计划和期望

  • 夜莺支持 opensearch 日志数据源,目前在逐步使用夜莺聚合多个日志数据源的告警。
  • 希望夜莺具备更多 AI 的能力,比如自然语言转 promql、自动定位根因等。

夜莺项目开源地址:https://github.com/ccfos/nightingale 欢迎收藏。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云