环境说明
夜莺官网:首页 - 快猫星云Flashcat
夜莺安装程序下载地址:快猫星云下载中心
夜莺v7.7.2镜像(X86架构): https://download.csdn.net/download/jjk_02027/90851161
夜莺ibex v1.2.0镜像(X86架构) https://download.csdn.net/download/jjk_02027/90851170
夜莺Categraf镜像(X86架构) https://download.csdn.net/download/jjk_02027/90851177
上面三个镜像提供给那些不能自已从外网镜像仓库下载的读者
夜莺一般会启6个容器(另外三个分别是:mysql、redis、prometheus,这三个一般不需要升级故不提供镜像下载地址)
本文对快猫星云的夜莺-NightingaleV6 升级到 V7进行详细深入的讲解
写作灵感
书写原因:n9e(nightingale)官方升级说明比较少,运维人员升级过程中容易碰到问题增加时间成本
夜莺-NightingaleV6 升级到 V7(离线升级)
老版本升级 - 快猫星云Flashcat
下载镜像
下载上面环境说明章节提到的三个镜像:可从使用docker desktop下载,也可从作者上面提供的链接下载
下面以作者之前下载mysql镜像的图片举例(从docker desktop下载):
-)Window桌面程序:Docker Desktop
-)下载镜像
-)安装镜像导出插件
-)将镜像文件保存到window本地(图略)
上传镜像
把镜像上传到夜莺服务器
导入镜像
docker load -i flashcatcloud_nightingale_7_7_2.tar
docker load -i flashcatcloud_ibex_v1_2_0-amd64.tar
docker load -i flashcatcloud_categraf_latest.tar
备份数据
进入mysql容器,然后到数据目录执行下面的命令(一般数据目录是映射到了本地磁盘的),会备份到本地磁盘对应的mysql数据目录。
mysqldump -uroot -p12** --databases ibex > ibex.sql
mysqldump -uroot -p12** n9e_v6 > n9e_v6.sql
修改docker-compose.yaml
修改docker-compose.yaml中 夜莺nightingale、夜莺ibex、夜莺Categraf三个镜像的名称和版本号
备份initsql目录后清空目录
# 备份initsql目录
cp -r /app/docker/nightingale/docker/initsql initsql_bak2025****
# 清空initsql目录,防止数据被清空(初始化脚本会重建表)
# 也可修复docker-compose.yaml文件中mysql容器配置中的sh脚本,取消数据库初始化动作
rm -rf /app/docker/nightingale/docker/initsql/*
停服务
[docker@GZCRM-PM153136 ~]$ cd /app/docker/nightingale/docker
[docker@GZCRM-PM153136 docker]$ ls
build.sh docker-compose.yaml Dockerfile Dockerfile.goreleaser.arm64 ibexetc initsql mysqldata mysql.yaml categraf Dockerfile.goreleaser experience_pg_vm images iptables.txt mysqletc prometc
[docker@GZ***-PM153*** docker]$ docker-compose down -v
[+] Running 6/6✔ Container categraf Removed 0.1s ✔ Container n9e Removed 10.1s ✔ Container prometheus Removed 0.1s ✔ Container ibex Removed 0.0s ✔ Container redis Removed 0.1s ✔ Container mysql Removed 1.6s
[docker@GZ***-PM153*** docker]$
启动服务
[docker@GZ***-PM153*** docker]$ docker-compose up -d
[+] Running 9/9
✔ Container prometheus Started 0.2s
✔ Container mysql Started 0.2s
✔ Container redis Started 0.2s
✔ Container ibex Started 0.2s
✔ Container n9e Started 0.3s
✔ Container categraf Started 0.4s
[docker@GZ***-PM153*** docker]$
升级验证
1、检查升级后的版本
前端版本:v7.7.0
后端版本:v7.7.2
2、检查数据
检查原告警规则是否存在
附件一:常见问题
Q1:启动报go脚本执行./wait失败或都不到命令
答:修改docker-compose.yaml 把sh脚本行中wait前的./去掉
Q2: 报找不到关系task_***
答:升级作者本文中提到的ibex和categraf到本文的版本
附件二:夜莺监控软件简介
夜莺监控软件(Nightingale)是一款集数据采集、可视化、监控告警和数据分析于一体的开源云原生观测分析工具。它采用All-in-One设计理念,与云原生生态紧密集成,为企业提供即插即用的监控分析和告警能力。夜莺监控最初由滴滴孵化并开源,后捐赠给中国计算机学会(CCF)进行托管和维护。
功能特点
- 数据采集:夜莺可以对接多种数据源,如Prometheus、VictoriaMetrics、ElasticSearch等,实现指标和日志的监控。
- 可视化:提供ad-hoc查询、指标视图、仪表盘等功能,虽然不如Grafana深入,但仍具备基本的数据展示能力。
- 告警引擎:夜莺的告警引擎支持多种数据源的接入,用户可以灵活设置告警规则,包括级别抑制、生效时间配置、事件relabel、告警屏蔽、告警订阅以及告警自愈等功能。
- 数据分析:夜莺提供数据分析功能,帮助用户深入理解监控数据,支持权限管理,确保数据安全。
架构设计
夜莺采用多机房部署方案,支持将告警引擎下沉至各个机房,确保在网络链路中断的情况下,边缘机房的告警功能仍能保持正常。此外,夜莺支持多种采集器和数据源,如Categraf、Telegraf、Grafana-agent等,兼容性好,能够满足复杂环境下的监控需求。
用户评价和社区支持
夜莺监控在GitHub上获得了大量Star和Fork,社区活跃度高,已经服务了上千家企业。其开箱即用的特性和灵活的告警规则配置使其在运维圈内广受欢迎。夜莺的开发团队由原Open-Falcon项目核心研发人员组成,具有丰富的开发经验和实战背景。
附件三:夜莺监控开源版和企业版区别
开源版和企业版的区别在于企业版具备高级功能与售后支持
夜莺监控开源版与企业版的核心区别在于:企业版提供了更多适用于大型企业的功能模块(如北极星、灭火图、事件墙等)以及售后技术支持,而开源版则适合中小型企业在业务复杂度较低时使用。具体差异如下:
-
功能扩展:
企业版包含开源版未具备的高级功能,例如:- 北极星(具体功能未详细说明,可能涉及监控导航或架构管理)
- 灭火图(可能指故障快速定位的可视化工具)
- 事件墙(用于集中展示和管理监控事件)
- 日志分析(深入处理日志数据的能力)
- 值班中心(排班管理与告警分配)
- 操作审计(记录系统操作日志以确保合规性)
-
服务支持:
企业版用户可获得额外的售后咨询和实施服务,而开源版需依赖社区或自行维护。 -
适用场景:
开源版适合服务器规模较小、业务相对简单的企业,而企业版更偏向于应对复杂的大型企业需求,尤其在降本增效的趋势下,企业需根据实际体量选择版本。