一、前言
某业务系统因OS改造,原先的Zabbix监控系统推倒后未重建,本来计划用外部企业内其他监控系统接入,后又通知需要自建才能对接,考虑之前zabbix的一些不便,本次计划采用一个类Prometheus的监控系统,镜调研后发现Nightingale兼容Prometheus,又有一些其他功能增强,又在一些大的企业经过较大规模部署实践,故本次采用Nightingale作为监控系统来进行重建。
Nightingale(夜莺) 是由滴滴开源,捐赠给中国计算机学会开源发展委员会(CCF ODC)的, 它是在 Open-Falcon 的基础上,结合滴滴内部的最佳实践,在性能、可维护性、易用性方面做了大量的改进,逐渐成熟为滴滴集团统一的监控解决方案,支撑了滴滴内部数十亿监控指标,覆盖了从OS、容器、到应用等各层面的监控需求,周活跃用户数千。(Nightingale)作为一个企业级云原生监控解决方案,旨在满足云原生时代企业级的监控需求,侧重云原生,同上兼顾云原生和裸金属,支持应用监控和系统监控,插件机制灵活,插件丰富完善,具有高度的灵活性和可扩展性。它可满足不同规模用户的场景,小到几台服务,大到数十万都可以完美支撑。官网号称:它具备All-in-One部署和开箱即用特性,集合了 Prometheus 和 Grafana 的优点,集成了数据收集、可视化和监控警报三大主要功能,还可以对分布在多个 Region 的指标、日志、链路追踪数据进行统一的可视化和分析。
通过上述系统,我们需要解决如下问题:
- 当环境中主机系统出现问题后 , 能及时感知,并告警通知,有方便的告警配置方式和多样的通知方式
- 可通过历史数据了解当前环境运行趋势,预测未来可能出问题,为服务扩缩容提供数据支撑
- 配置简单,功能完善,文档丰富,有成熟的结构可参考
- 支持多种指标检测,尤其可及时感知业务异常,并支持一定的告警自我恢复
相关资源:官网、官方手册、nightingale Gitee、官方文档、社区问答、Bug报告、open-falcon、Netdata、TSDB
二、产品特性及架构
2.1、产品特性
目前官方最新版是6.5.0版本。从 v6 版本开始,夜莺尝试转型为统一可观测性平台,n9e 不再仅支持接入时序数据源(Prometheus、Victoriametrics、M3DB、Thanos),也可以接入日志类数据源(Elasticsearch,Loki【预】),链路追踪数据源(Jaeger)。
1)开箱即用:Nightingale支持Docker、Helm Chart和云服务等多种部署方式,它将数据收集、监控和警报集成到了一个系统中,并配有各种监控面板、快速视图和警报规则模板,这大大降低了云原生监控系统的建设成本、学习成本和使用成本,从 v6 版本开始,支持接入 ElasticSearch、Jaeger 数据源,实现日志、链路、指标多维度的统一可观测,更好的UI界面也让用户使用更简单,更加友好。
2)专业的告警管理:它可提供可视化警报配置和管理,支持各种警报规则,提供配置静默和订阅规则的功能,支持多个警报传递通道(多种告警方式),并具有警报自我修复和事件管理等功能。支持对接 Prometheus、VictoriaMetrics、Thanos、Mimir、M3DB 等多种时序库,可实现统的一告警管理。另外它无缝搭配 Flashduty,实现了告警聚合收敛、认领、升级、排班、IM集成,确保告警处理不遗漏,减少打扰,更好协同。
3)云原生支持:实现了通过“交钥匙”即交付的方式来快速构建企业级云原生监控系统,支持大多常见采集器Categra