保姆级教程:用Docker Compose 10分钟快速部署夜莺监控v6(附Categraf配置)
10分钟极速部署夜莺监控v6Docker Compose全栈实战指南夜莺监控Nightingale作为云原生监控领域的国产新锐近年来在技术社区的热度持续攀升。对于想要快速体验其强大功能的开发者而言传统部署方式往往需要耗费数小时配置各种依赖组件。本文将带你用Docker Compose在10分钟内完成全栈部署——从时序数据库到前端看板再到指标采集器所有组件都将以容器化方式一键启动。这种All in Docker的部署方案特别适合个人开发者快速搭建测试环境或是中小团队评估监控系统功能。1. 环境准备与架构解析在开始部署之前让我们先了解这个容器化方案的技术架构。整套系统包含五个核心组件n9e-server监控系统的后端处理核心负责告警规则计算和指标转发n9e-web基于Vue.js构建的现代化监控看板VictoriaMetrics高性能时序数据库单机版MySQL 8.0存储用户配置和告警规则Redis维护服务心跳和会话缓存提示本方案使用VictoriaMetrics替代Prometheus作为存储后端因其单机性能更优特别适合资源有限的测试环境。1.1 系统要求确保你的开发机满足以下最低配置# 检查Docker版本需≥20.10 docker --version # 检查Docker Compose版本需≥v2.5 docker compose version硬件建议配置组件CPU核心内存磁盘空间基础服务2核4GB10GBVictoriaMetrics1核2GB20GB**注磁盘空间根据监控数据保留时长动态调整2. 一键部署全栈服务2.1 编写docker-compose.yml创建部署目录并编写编排文件version: 3.8 services: victoriametrics: image: victoriametrics/victoria-metrics:v1.91.3 ports: - 8428:8428 volumes: - vm_data:/victoria-metrics-data command: - --retentionPeriod30d - --httpListenAddr:8428 mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: n9e_password MYSQL_DATABASE: n9e_v6 volumes: - mysql_data:/var/lib/mysql redis: image: redis:6.2-alpine ports: - 6379:6379 n9e-server: image: flashcatcloud/n9e-server:v6.0.0 ports: - 17000:17000 depends_on: - mysql - redis - victoriametrics environment: - DB_DSNroot:n9e_passwordtcp(mysql:3306)/n9e_v6 - REDIS_DSNredis:6379 - TSDB_DSNhttp://victoriametrics:8428 n9e-web: image: flashcatcloud/n9e-web:v6.0.0 ports: - 18000:18000 depends_on: - n9e-server volumes: vm_data: mysql_data:关键配置说明VictoriaMetrics设置了30天数据保留期MySQL root密码硬编码为n9e_password生产环境应使用secrets所有服务通过Docker网络自动互联2.2 启动服务栈执行以下命令启动所有服务# 后台启动服务 docker compose up -d # 查看服务状态 docker compose ps正常启动后你应该看到类似输出NAME COMMAND SERVICE STATUS PORTS n9e-server /opt/n9e/n9e serve… n9e-server running 0.0.0.0:17000-17000/tcp n9e-web docker-entrypoint.s… n9e-web running 0.0.0.0:18000-18000/tcp3. 配置Categraf采集器3.1 创建Categraf配置文件新建categraf目录包含以下配置文件结构categraf/ ├── config │ ├── config.toml │ └── prometheus.toml └── docker-compose.categraf.ymlconfig.toml基础配置[global] hostname dev-machine interval 15 [writer_opt] batch 2000 timeout 5000 [[writers]] url http://n9e-server:17000/prometheus/v1/writeprometheus.toml采集配置[[instances]] targets [ localhost:9100, # node_exporter localhost:9090 # prometheus ] labels { region dev, project n9e-test }3.2 启动Categraf容器编写专属编排文件version: 3.8 services: categraf: image: flashcatcloud/categraf:v0.3.0 volumes: - ./config:/etc/categraf/conf network_mode: host restart: unless-stopped启动采集器docker compose -f docker-compose.categraf.yml up -d4. 系统验证与故障排查4.1 服务健康检查验证各组件是否正常工作# 检查VictoriaMetrics curl http://localhost:8428/health # 检查n9e-server curl http://localhost:17000/health # 检查指标接收 curl http://localhost:17000/api/v1/series?match[]up4.2 常见问题解决问题1MySQL连接失败解决方案# 检查MySQL日志 docker compose logs mysql # 临时进入容器验证连接 docker compose exec mysql mysql -uroot -pn9e_password问题2指标未显示在前端排查步骤确认Categraf日志无报错检查VictoriaMetrics是否有数据写入验证n9e-server与TSDB的连接配置4.3 登录监控看板访问http://localhost:18000使用默认凭证登录用户名root密码root.2020首次登录后建议立即修改管理员密码配置数据源为VictoriaMetrics地址填http://victoriametrics:8428导入示例监控看板5. 生产环境进阶配置5.1 安全加固措施对于长期运行的测试环境建议# 在docker-compose.yml中添加 services: n9e-web: environment: - JWT_SECRETyour_strong_secret mysql: environment: - MYSQL_ROOT_PASSWORD_FILE/run/secrets/mysql_root secrets: mysql_root: file: ./mysql_root_password.txt5.2 性能调优参数VictoriaMetrics生产建议配置victoriametrics: command: - --retentionPeriod7d - --storageDataPath/victoria-metrics-data - --search.maxQueryDuration30s - --search.maxQueueDuration10s - --memory.allowedPercent605.3 监控项扩展通过修改Categraf配置添加更多采集项# 监控Docker容器 [[instances.docker]] endpoint unix:///var/run/docker.sock实际部署中发现将Categraf的interval调整为30秒能显著降低测试环境资源占用同时保持监控数据的时效性。对于Windows主机的监控只需在Categraf配置中启用windows_metrics插件即可实现跨平台监控。