夜莺开源项目在2023.7月底发布了V6版本,这个版本开始,项目目标不止于做一款开源监控系统,而是要做一款开源可观测性平台,不过路漫漫其修远兮,初期只是把日志数据源引入并完成了基本的可视化,后续会着力打通指标和日志的数据串联以及数据特征提取。欢迎小伙伴一起参与共建。
夜莺V6版本开发了好几个月了,于2023.7月底发布了正式版,今天是8.7号,实际最新版本已经是v6.0.1了,V6相比之前的版本有重大的改进。本文给大家做一些重点介绍。
1. 项目目标
V6版本开始,项目目标不止于监控平台的构建,转而构建可观测性平台。监控部分的功能已经渐趋完善,后面可能还会做一些长尾需求,但是基本功能已经非常完备了。作为稳定性体系的重要手段,监控/可观测性平台,需要承担故障发现、故障定位的职能,监控可以做到故障发现,但要想做到故障定位,必须要引入日志、链路追踪的能力。
当然,罗马不是一天建成的,可观测性这个事情也非一蹴而就。夜莺V6初期,首先引入了日志数据源的集成能力,可以集成ElasticSearch作为数据源。在夜莺里查看日志数据。在一个平台、甚至一个大盘里,可以同时看到指标数据和日志数据,算是万里长征第一步。
2. 当前情况
夜莺项目从2020.3.20正式发布到现在,已经有 github star 6.7K,1.1K forks,23K docker pulls,100+ contributors,100+ releases。
下面给大家介绍一下新版本的一些功能特点。
3. 新功能介绍
整体来看,就是提升易用性。很多经验类的能力直接内置,简化了架构,简化了配置管理,简化了使用方式。
经验内置
categraf 已经内置支持了常见的中间件的数据采集。夜莺V6开始,内置了常见的中间件的监控仪表盘和告警规则,导入即可使用,真香。当然了,常用的中间件数量庞大,我们也没法全部兼顾,不过这个机制是个好机制,后续可以逐步演化完备,时间久了就会越来越好,也欢迎社区小伙伴一起参与,相关大盘、告警规则、采集说明,都在项目的 integrations 目录下。
提升灵活性
夜莺项目以告警规则的管理见长,支持告警规则、屏蔽规则、订阅规则、抑制规则的管理,支持历史告警存档查询以及活跃告警的聚类查看。规则层面增加了很多小细节优化,增加了更多灵活的配置。
更丰富的告警事件处理,比如告警聚合、收敛、排班、认领、升级、协同等,推荐使用 FlashDuty,可以对接市场上所有常见的监控系统以及云监控。
简化架构
新版本简化了架构设计,默认情况下,只需要一个二进制即可,仍然可以对接市面上常见的采集器:telegraf、categraf、grafana-agent、datadog-agent、exporters 等等,仍然可以对接常见的存储系统:VictoriaMetrics、Prometheus、Thanos、Mimir 等等。
当然,如果某个机房的网络和中心不畅,我们还提供边缘机房的部署方案,这个功能是很多复杂场景的用户选择使用夜莺的原因。
简化配置
很多很多配置都挪到页面管理了。比如数据源的配置、通知配置、模板配置、权限配置。这些配置都可以在页面上完成,不需要修改配置文件了。
引入日志数据源
既然要往可观测性平台发展,日志和链路追踪的能力是必须的,V6初步把ElasticSearch数据源给集成了进来,可以在夜莺里查看。后面逐步增加数据串联打通的逻辑。
4. 安装试用
可以从两个地方下载测试:
- 国内: Flashcat下载中心
- 国外: github releases
5. 后续计划
- LTS 版本支持时限为两年,针对 LTS 版本,仅接收 bugfix、security fix 和针对文档的更新
- 新的 LTS 版本每一年发布一次
- 每隔一个月,发布一个小版本,包括性能优化、bugfix 等内容