5分钟极速部署夜莺监控v6:Docker Compose+Categraf实战指南
夜莺监控(Nightingale)作为国产开源监控系统的佼佼者,其v6版本在易用性和性能上都有了显著提升。本文将带你用最短时间完成核心组件的部署,并实现服务器指标的可视化监控。无需担心复杂的架构和配置,我们采用Docker Compose实现一键式部署,配合轻量级采集器Categraf,让你在咖啡还没凉透时就能看到监控数据跳动。
1. 环境准备与工具安装
在开始之前,确保你的系统已经安装以下基础组件:
- Docker Engine20.10.0或更高版本
- Docker Composev2.0.0或更高版本
- 至少4GB可用内存(推荐8GB)
- 10GB可用磁盘空间
验证安装是否成功:
docker --version && docker-compose version如果系统提示命令未找到,需要先安装这些工具。对于Ubuntu/Debian系统,可以执行:
sudo apt-get update && sudo apt-get install -y docker.io docker-compose-plugin提示:生产环境建议使用专用服务器或虚拟机,避免在个人开发机上长期运行监控系统。
2. 编写Docker Compose配置文件
创建项目目录并编写docker-compose.yml文件:
version: '3.8' services: mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: n9e_123456 MYSQL_DATABASE: n9e_v6 volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 5s timeout: 10s retries: 3 redis: image: redis:6.2-alpine command: redis-server --requirepass n9e_redis healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 3 n9e-server: image: flashcatcloud/n9e-server:v6.0.0 depends_on: mysql: condition: service_healthy redis: condition: service_healthy environment: MYSQL_DSN: "root:n9e_123456@tcp(mysql:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local" REDIS_DSN: "redis://:n9e_redis@redis:6379/0" ports: - "17000:17000" volumes: - ./server.conf:/etc/n9e/server.conf n9e-web: image: flashcatcloud/n9e-web:v6.0.0 depends_on: n9e-server: condition: service_started ports: - "18000:18000" volumes: mysql_data:关键配置说明:
- MySQL:存储用户配置和元数据,密码设置为
n9e_123456 - Redis:用于服务心跳和缓存,密码为
n9e_redis - n9e-server:核心服务组件,暴露17000端口
- n9e-web:Web界面,暴露18000端口
3. 启动夜莺监控服务
在包含docker-compose.yml的目录下执行:
docker-compose up -d等待约1-2分钟,所有服务启动完成后,可以通过以下命令检查状态:
docker-compose ps正常情况应该看到所有服务状态为healthy或running。现在可以访问Web界面:
http://<你的服务器IP>:18000默认登录凭证:
- 用户名:root
- 密码:root.2020
注意:首次登录后请立即修改密码,生产环境务必使用强密码。
4. 配置Categraf采集器
Categraf是夜莺官方推荐的轻量级采集器,支持多种指标采集。我们将在监控目标服务器上安装并配置它。
下载并解压最新版Categraf:
wget https://github.com/flashcatcloud/categraf/releases/download/v0.3.0/categraf-v0.3.0-linux-amd64.tar.gz tar zxvf categraf-v0.3.0-linux-amd64.tar.gz cd categraf-v0.3.0-linux-amd64编辑conf/config.toml文件,找到并修改以下配置:
[global] hostname = "your-server-name" # 改为有意义的服务器名称 interval = 15 # 采集间隔(秒) [writer_opt] batch = 2000 timeout = 5000 [[writers]] url = "http://<夜莺服务器IP>:17000/prometheus/v1/write"然后启用系统指标采集:
cp conf/input.system/linux.toml.example conf/input.system/linux.toml启动Categraf:
nohup ./categraf &> categraf.log &验证数据上报:
tail -f categraf.log | grep "write metrics"应该能看到类似以下输出,表示数据上报成功:
2023/07/20 14:30:15 write metrics: batch=56, cost=12ms5. 夜莺监控界面配置
登录夜莺Web界面后,按照以下步骤完成监控配置:
添加数据源:
- 导航至"系统配置" → "数据源"
- 点击"添加",选择"Prometheus"类型
- 名称填写
local-prometheus - URL填写
http://n9e-server:17000 - 点击"测试连接"确认无误后保存
查看监控指标:
- 导航至"监控对象" → "主机"
- 应该能看到你配置的服务器名称
- 点击主机名进入详情页,查看CPU、内存等指标
创建监控大盘(可选):
- 导航至"监控看图" → "仪表盘"
- 点击"新建",选择"空白面板"
- 添加图表,选择指标如
cpu_usage_idle等 - 保存仪表盘
6. 常见问题排查
如果遇到问题,可以按照以下步骤排查:
问题1:Web界面无法访问
- 检查防火墙是否放行18000端口
- 查看n9e-web容器日志:
docker-compose logs n9e-web
问题2:Categraf无法上报数据
- 检查网络连通性:
telnet <夜莺IP> 17000 - 验证Categraf配置中的URL是否正确
- 查看Categraf日志中的错误信息
问题3:监控数据不显示
- 确认数据源配置正确
- 检查n9e-server日志:
docker-compose logs n9e-server - 验证MySQL和Redis连接是否正常
7. 进阶配置建议
基础环境运行稳定后,可以考虑以下优化:
安全加固:
- 修改MySQL和Redis的默认密码
- 配置Nginx反向代理并启用HTTPS
- 设置IP访问白名单
性能优化:
# 在docker-compose.yml中添加资源限制 n9e-server: deploy: resources: limits: cpus: '2' memory: 2G数据持久化:
# 添加Redis数据卷 redis: volumes: - redis_data:/data volumes: redis_data:多节点监控:
- 在其他服务器上安装Categraf
- 修改
conf/config.toml中的hostname为唯一标识 - 确保所有Categraf实例都能访问n9e-server
这套部署方案虽然精简,但已经包含了夜莺监控的核心功能。在实际使用中,随着监控需求的增加,你可以逐步探索告警规则配置、自定义监控指标、权限管理等高级功能。夜莺的模块化设计使得这些扩展都能在不影响现有监控的情况下平滑实现。