Nightingale监控系统介绍与部署(可离线部署)
Nightingale 介绍
Nightingale(夜莺)是一个开源的企业级监控解决方案,由 Flashcat 开发和维护,广泛应用于服务器、云服务和应用的性能监控。它结合了 Prometheus 的时间序列数据存储和 Grafana 的可视化功能,提供强大的监控、告警和仪表盘功能,特别适合需要高可用性和可扩展性的企业环境。
主要功能
- 时间序列数据收集:支持多种数据采集方式(如 Prometheus、VictoriaMetrics),通过 Categraf 采集主机、网络、数据库等指标。
- 灵活的告警系统:支持多维度告警规则配置,可通过邮件、短信、钉钉、微信等渠道发送告警。
- 可视化仪表盘:提供丰富的图形化界面,支持自定义仪表盘,部分兼容 Grafana 仪表盘。
- 高可用性:支持集群部署,适合大规模分布式系统。
- 开放生态:与 Prometheus、VictoriaMetrics 等开源工具无缝集成,支持多种数据源。
适用场景
- 企业 IT 基础设施监控(服务器、容器、数据库)。
- 云计算和微服务环境下的性能管理。
- DevOps 团队的告警和问题排查。
项目信息
- GitHub 仓库:GitHub - ccfos/nightingale: Nightingale for monitoring and alerting, just as Grafana for visualization.
- 官方文档:Home · ccfos/nightingale Wiki · GitHub
安装环境
- 操作系统:Ubuntu 18.04 或更高版本(或其他支持 Docker 的 Linux 发行版)。
- 硬件要求:至少 2 核 CPU、4GB 内存、20GB 磁盘空间。
- 网络要求:确保能访问 github.com 和 dockerproxy.net,端口 3306、6379、8428、17000、20090 未被占用。
- 工具要求:
- Docker
- Docker Compose
- Git
安装步骤
1. 安装前提条件
确保虚拟机已安装以下工具:
- Docker:
验证:sudo apt update sudo apt install -y docker.io sudo systemctl start docker sudo systemctl enable docker
docker --version
- Docker Compose:
验证:sudo apt install -y docker-compose
docker-compose --version
- Git:
验证:sudo apt install -y git
git --version
2. 克隆 Nightingale 仓库
下载 Nightingale 源代码:
cd ~
git clone https://github.com/ccfos/nightingale.git
进入 Docker Compose 目录:
cd ~/nightingale/nightingale/docker/compose-bridge
3. 拉取镜像(使用 dockerproxy.net)
根据 docker-compose.yaml(未修改,包含 mysql:8、redis:6.2、victoriametrics/victoria-metrics:v1.79.12、flashcatcloud/nightingale:latest、flashcatcloud/categraf:latest),从 dockerproxy.net 拉取所有镜像:
docker pull dockerproxy.net/flashcatcloud/nightingale:latest
docker pull dockerproxy.net/library/mysql:8
docker pull dockerproxy.net/library/redis:6.2
docker pull dockerproxy.net/victoriametrics/victoria-metrics:v1.79.12
docker pull dockerproxy.net/flashcatcloud/categraf:latest
4. 重命名镜像(使用 docker tag)
将 dockerproxy.net 的镜像重命名为 docker-compose.yaml 所需的名称:
docker tag dockerproxy.net/flashcatcloud/nightingale:latest flashcatcloud/nightingale:latest
docker tag dockerproxy.net/library/mysql:8 mysql:8
docker tag dockerproxy.net/library/redis:6.2 redis:6.2
docker tag dockerproxy.net/victoriametrics/victoria-metrics:v1.79.12 victoriametrics/victoria-metrics:v1.79.12
docker tag dockerproxy.net/flashcatcloud/categraf:latest flashcatcloud/categraf:latest
5. 删除原始 dockerproxy.net 镜像
移除 dockerproxy.net 的镜像以节省空间:
docker rmi dockerproxy.net/flashcatcloud/nightingale:latest
docker rmi dockerproxy.net/library/mysql:8
docker rmi dockerproxy.net/library/redis:6.2
docker rmi dockerproxy.net/victoriametrics/victoria-metrics:v1.79.12
docker rmi dockerproxy.net/flashcatcloud/categraf:latest
6. 验证镜像
确认所有镜像存在且正确:
docker images
- 应包含:
- flashcatcloud/nightingale:latest
- mysql:8
- redis:6.2
- victoriametrics/victoria-metrics:v1.79.12
- flashcatcloud/categraf:latest
7. 保存镜像(用于离线部署)
将镜像导出为 tar 文件,以便在其他机器上离线部署:
docker save -o nightingale.tar flashcatcloud/nightingale:latest
docker save -o mysql.tar mysql:8
docker save -o redis.tar redis:6.2
docker save -o victoriametrics.tar victoriametrics/victoria-metrics:v1.79.12
docker save -o categraf.tar flashcatcloud/categraf:latest
- 这些 .tar 文件(nightingale.tar、mysql.tar、redis.tar、victoriametrics.tar、categraf.tar)将保存在当前目录。
8. 使用 MobaXterm 上传镜像(离线部署)
在本地机器上使用 MobaXterm 将保存的镜像文件上传到目标机器:
- 打开 MobaXterm,连接到目标虚拟机(通过 SSH)。
- 在 MobaXterm 左侧的“文件”面板,找到包含 .tar 文件的本地目录(例如,您的 PC 上的 C:\Downloads)。
- 将以下文件拖放到 MobaXterm 的文件面板中的目标目录(例如 /home/leo/nightingale/nightingale/docker/compose-bridge):
- nightingale.tar
- mysql.tar
- redis.tar
- victoriametrics.tar
- categraf.tar
- 验证文件是否上传成功:
ls -lh ~/nightingale/nightingale/docker/compose-bridge
9. 加载镜像(在离线机器上)
在目标机器上导入镜像:
cd ~/nightingale/nightingale/docker/compose-bridge
docker load -i nightingale.tar
docker load -i mysql.tar
docker load -i redis.tar
docker load -i victoriametrics.tar
docker load -i categraf.tar
- 验证导入的镜像:
docker images
10. 清理旧状态
清理之前的容器和卷,以避免冲突:
cd ~/nightingale/nightingale/docker/compose-bridge
docker-compose down
docker system prune -f
docker volume prune -f
11. 运行 Docker Compose
启动 Nightingale:
docker-compose up -d
- 等待 1-2 分钟以确保容器初始化。
12. 验证容器状态
检查容器状态:
docker-compose ps
- 确保所有服务(mysql、redis、victoriametrics、nightingale、categraf)状态为 Up。
- 如果有容器状态为 Restarting 或 Exited,查看日志:
例如:docker-compose logs <服务名>
docker-compose logs mysql docker-compose logs nightingale
13. 访问 Nightingale Web 界面
- 根据 docker-compose.yaml,Nightingale 监听端口 17000。在浏览器中访问:
http://<虚拟机IP>:17000
- 例如,如果虚拟机 IP 是 192.168.1.100,访问 http://192.168.1.100:17000。
- 默认登录凭据:
- 用户名:root
- 密码:root.2020