README.md

    nightingale - cloud native monitoring

    夜莺是一款开源的云原生监控系统,采用 all-in-one 的设计,提供企业级的功能特性,开箱即用的产品体验。推荐升级您的 Prometheus + AlertManager + Grafana 组合方案到夜莺

    GitHub latest release Docs Docker pulls GitHub Repo stars GitHub forks GitHub contributors License

    English | 中文

    Highlighted Features

    • 开箱即用
      • 支持 Docker、Helm Chart、云服务等多种部署方式,集数据采集、监控告警、可视化为一体,内置多种监控仪表盘、快捷视图、告警规则模板,导入即可快速使用,大幅降低云原生监控系统的建设成本、学习成本、使用成本
    • 专业告警
      • 可视化的告警配置和管理,支持丰富的告警规则,提供屏蔽规则、订阅规则的配置能力,支持告警多种送达渠道,支持告警自愈、告警事件管理等;
    • 云原生
      • 以交钥匙的方式快速构建企业级的云原生监控体系,支持 Categraf、Telegraf、Grafana-agent 等多种采集器,支持 Prometheus、VictoriaMetrics、M3DB、ElasticSearch 等多种数据库,兼容支持导入 Grafana 仪表盘,与云原生生态无缝集成
    • 高性能,高可用
      • 得益于夜莺的多数据源管理引擎,和夜莺引擎侧优秀的架构设计,借助于高性能时序库,可以满足数亿时间线的采集、存储、告警分析场景,节省大量成本;
      • 夜莺监控组件均可水平扩展,无单点,已在上千家企业部署落地,经受了严苛的生产实践检验。众多互联网头部公司,夜莺集群机器达百台,处理数亿级时间线,重度使用夜莺监控;
    • 灵活扩展,中心化管理
      • 夜莺监控,可部署在 1 核 1G 的云主机,可在上百台机器集群化部署,可运行在 K8s 中;也可将时序库、告警引擎等组件下沉到各机房、各 Region,兼顾边缘部署和中心化统一管理,解决数据割裂,缺乏统一视图的难题
    • 开放社区
      • 托管于中国计算机学会开源发展委员会,有快猫星云和众多公司的持续投入,和数千名社区用户的积极参与,以及夜莺监控项目清晰明确的定位,都保证了夜莺开源社区健康、长久的发展。活跃、专业的社区用户也在持续迭代和沉淀更多的最佳实践于产品中;

    如果您在使用 Prometheus 过程中,有以下的一个或者多个需求场景,推荐您无缝升级到夜莺:

    • Prometheus、Alertmanager、Grafana 等多个系统较为割裂,缺乏统一视图,无法开箱即用;
    • 通过修改配置文件来管理 Prometheus、Alertmanager 的方式,学习曲线大,协同有难度;
    • 数据量过大而无法扩展您的 Prometheus 集群;
    • 生产环境运行多套 Prometheus 集群,面临管理和使用成本高的问题;

    如果您在使用 Zabbix,有以下的场景,推荐您升级到夜莺:

    • 监控的数据量太大,希望有更好的扩展解决方案;
    • 学习曲线高,多人多团队模式下,希望有更好的协同使用效率;
    • 微服务和云原生架构下,监控数据的生命周期多变、监控数据维度基数高,Zabbix 数据模型不易适配;

    如果您在使用 Open-Falcon,我们更推荐您升级到夜莺:

    我们推荐您使用 Categraf 作为首选的监控数据采集器:

    • Categraf 是夜莺监控的默认采集器,采用开放插件机制和 all-in-one 的设计,同时支持 metric、log、trace、event 的采集。Categraf 不仅可以采集 CPU、内存、网络等系统层面的指标,也集成了众多开源组件的采集能力,支持K8s生态。Categraf 内置了对应的仪表盘和告警规则,开箱即用。

    Getting Started

    Screenshots

    Architecture

    夜莺监控可以接收各种采集器上报的监控数据(比如 Categraf、telegraf、grafana-agent、Prometheus),并写入多种流行的时序数据库中(可以支持Prometheus、M3DB、VictoriaMetrics、Thanos、TDEngine等),提供告警规则、屏蔽规则、订阅规则的配置能力,提供监控数据的查看能力,提供告警自愈机制(告警触发之后自动回调某个webhook地址或者执行某个脚本),提供历史告警事件的存储管理、分组查看的能力。

    夜莺 v5 版本的设计非常简单,核心是 server 和 webapi 两个模块,webapi 无状态,放到中心端,承接前端请求,将用户配置写入数据库;server 是告警引擎和数据转发模块,一般随着时序库走,一个时序库就对应一套 server,每套 server 可以只用一个实例,也可以多个实例组成集群,server 可以接收 Categraf、Telegraf、Grafana-Agent、Datadog-Agent、Falcon-Plugins 上报的数据,写入后端时序库,周期性从数据库同步告警规则,然后查询时序库做告警判断。每套 server 依赖一个 redis。

    如果单机版本的时序数据库(比如 Prometheus) 性能有瓶颈或容灾较差,我们推荐使用 VictoriaMetrics,VictoriaMetrics 架构较为简单,性能优异,易于部署和运维,架构图如上。VictoriaMetrics 更详尽的文档,还请参考其官网

    Community

    开源项目要更有生命力,离不开开放的治理架构和源源不断的开发者和用户共同参与,我们致力于建立开放、中立的开源治理架构,吸纳更多来自企业、高校等各方面对云原生监控感兴趣、有热情的开发者,一起打造有活力的夜莺开源社区。关于《夜莺开源项目和社区治理架构(草案)》,请查阅 COMMUNITY GOVERNANCE.

    我们欢迎您以各种方式参与到夜莺开源项目和开源社区中来,工作包括不限于

    尊重、认可和记录每一位贡献者的工作是夜莺开源社区的第一指导原则,我们提倡高效的提问,这既是对开发者时间的尊重,也是对整个社区知识沉淀的贡献:

    • 提问之前请先查阅 FAQ
    • 提问之前请先搜索 github issue
    • 我们优先推荐通过提交 github issue 来提问,如果有问题点击这里 | 有需求建议点击这里
    • 最后,我们推荐你加入微信群,针对相关开放式问题,相互交流咨询 (请先加好友:UlricGO 备注:夜莺加群+姓名+公司,交流群里会有开发者团队和专业、热心的群友回答问题)

    Who is using

    您可以通过在 Who is Using Nightingale 登记您的使用情况,分享您的使用经验。

    Stargazers

    Stargazers over time

    Contributors

    License

    Apache License V2.0

    Contact Us

    推荐您关注夜莺监控公众号,及时获取相关产品和社区动态:

    项目简介

    An all-in-one observability solution which aims to combine the advantages of Prometheus and Grafana. It manages alert rules and visualizes metrics, logs, traces in a beautiful web UI.

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/didi/nightingale

    发行版本 122

    v6.1.0

    全部发行版

    贡献者 60

    全部贡献者

    开发语言

    • Go 95.6 %
    • Python 2.8 %
    • Smarty 1.6 %
    • Shell 0.1 %