nightingale/README.md

9.4 KiB
Raw Blame History

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 性能有瓶颈或容灾较差,我们推荐使用 VictoriaMetricsVictoriaMetrics 架构较为简单性能优异易于部署和运维架构图如上。VictoriaMetrics 更详尽的文档,还请参考其官网

Community

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

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

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

  • 提问之前请先查阅 FAQ
  • 我们使用GitHub Discussions作为交流论坛,有问题可以到这里搜索、提问
  • 我们也推荐你加入微信群,和其他夜莺用户交流经验 (请先加好友:UlricGO 备注:夜莺加群+姓名+公司)

Who is using

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

Stargazers

Stargazers over time

Contributors

License

Apache License V2.0

Contact Us

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