Nightingale企业级监控解决方案
夜莺(Nightingale)是一个企业级监控解决方案。旨在满足云原生时代企业级的监控需求。Nightingale 在产品完成度、系统高可用、以及用户体验方面,达到了企业级的要求,可满足不同规模用户的场景,小到几台服务,大到数十万都可以完美支撑。兼顾云原生和裸金属,支持应用监控和系统监控,插件机制灵活,插件丰富完善,具有高度的灵活性和可扩展性。
Nightingale 最初由滴滴开源,后来捐赠给中国计算机学会开源发展委员会(建成CCF ODC),是CCF ODC首个接受产业界捐赠的开源项目。
Nightingale 在 Open-Falcon 的基础上,结合滴滴内部的最佳实践,在性能、可维护性、易用性方面做了大量的改进,作为集团统一的监控解决方案,支撑了滴滴内部数十亿监控指标,覆盖了从系统、容器、到应用等各层面的监控需求,周活跃用户数千。五年磨一剑,取之开源,回馈开源。
产品特点
开箱即用
内置监控大盘、快捷视图、告警规则,导入即可快速使用,广大社区用户也在持续完善,将最佳实践内置于产品
兼容并包
可以和 Prometheus、Categraf、Telegraf、Datadog-Agent、VictoriaMetrics、M3DB 等无缝集成
高性能
得益于新时代的高性能时序库,和夜莺引擎侧优秀的设计,单机轻松扛起百万Series,节省企业大量成本
水平扩展
服务端组件均可水平扩展,无单点风险;亦可将时序库、告警引擎下沉到各个机房,从地域、业务层拆分
经受打磨
夜莺监控已经在上千家企业部署落地,经受了生产实践打磨,有些企业的夜莺集群达几十台机器,处理十亿级Series
社区活跃
托管于中国计算机学会开源发展委员会,有快猫星云商业公司持续投入,夜莺项目具有持久生命力
产品介绍
Nightingale 可以接收各种采集器上报的监控数据,转存到时序库(可以支持Prometheus、M3DB、VictoriaMetrics、Thanos等),并提供告警规则、屏蔽规则、订阅规则的配置能力,提供监控数据的查看能力,提供告警自愈机制(告警触发之后自动回调某个webhook地址或者执行某个脚本),提供历史告警事件的存储管理、分组查看的能力。
系统截图
系统架构
莺 v5 的设计非常简单,核心是 server 和 webapi 两个模块,webapi 无状态,放到中心端,承接前端请求,将用户配置写入数据库;server 是告警引擎和数据转发模块,一般随着时序库走,一个时序库就对应一套 server,每套 server 可以只用一个实例,也可以多个实例组成集群,server 可以接收 Categraf、Telegraf、Grafana-Agent、Datadog-Agent、Falcon-Plugins 上报的数据,写入后端时序库,周期性从数据库同步告警规则,然后查询时序库做告警判断。每套 server 依赖一个 redis。
产品对比
Zabbix
Zabbix 是一款老牌的监控系统,对机器和网络设备的监控覆盖很全,比如支持 AIX 系统,常见的开源监控都是支持 Linux、Windows,AIX 较少能够支持,Zabbix 用户群体广泛,国内很多公司基于 Zabbix 做商业化服务,不过 Zabbix 使用数据库做存储,容量有限,今年推出的 TimescaleDB 对容量有较大提升,大家可以尝试下;其次 Zabbix 整个产品设计是面向静态资产的,在云原生场景下显得力不从心。
Open-Falcon
因为开发 Open-Falcon 和 Nightingale 的是一拨人,所以很多社区伙伴会比较好奇,为何要新做一个监控开源软件。核心点是 Open-Falcon 和 Nightingale 的差异点实在是太大了,Nightingale 并非是 Open-Falcon 设计逻辑的一个延续,就看做两个不同的软件就好。
Open-Falcon 是 14 年开发的,当时是想解决 Zabbix 的一些容量问题,可以看做是物理机时代的产物,整个设计偏向运维视角,虽然数据结构上已经开始设计了标签,但是查询语法还是比较简单,无法应对比较复杂的场景。
Nightingale 直接支持 PromQL,支持 Prometheus、M3DB、VictoriaMetrics 多种时序库,支持 Categraf、Telegraf、Datadog-Agent、Grafana-Agent 做监控数据采集,支持 Grafana 看图,整个设计更加云原生。
Prometheus
Nightingale 可以简单看做是 Prometheus 的一个企业级版本,把 Prometheus 当做 Nightingale 的一个内部组件(时序库),当然,也不是必须的,时序库除了 Prometheus,还可以使用 VictoriaMetrics、M3DB 等,各种 Exporter 采集器也可以继续使用。
Nightingale 可以接入多个 Prometheus,可以允许用户在页面上配置告警规则、屏蔽规则、订阅规则,在页面上查看告警事件、做告警事件聚合统计,配置告警自愈机制,管理监控对象,配置监控大盘等,就把 Nightingale 看做是 Prometheus 的一个 WEBUI 也是可以的,不过实际上,它远远不止是一个 WEBUI,用一下就会深有感触。
联系我们
- 我们的官网是 https://n9e.github.io/,相关文档会首发于此。
- 您可以在github关注夜莺:https://github.com/ccfos/nightingale ,欢迎您试用和参与社区。
- 我们的公众号:夜莺监控,欢迎关注,夜莺的很多教程也会发到这里
致谢和说明
- Open-Falcon 是小米运维团队开源的企业级监控解决方案,在国内广泛使用。
- Nightingale 采用 Apache-2.0 开源协议。