尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

夜莺开源监控如何使用 Docker 部署,有哪些注意事项?

夜莺开源监控如何使用 Docker 部署,有哪些注意事项? 我这个问题里刻意提到“夜莺”关键字没有使用 Nightingale因为我的 Knowledge 里就是用的“夜莺”另外我刻意要求 AI 告诉我有哪些注意事项因为我担心有坑。AI 的回答真的挺惊艳的而且这是普通的 DeepSeek V4并非顶级模型截图如下不骗大家。详细回答如下。用 Docker Compose 部署夜莺监控一、快速开始夜莺提供了开箱即用的 Docker Compose 配置文件位于源码仓库的docker/compose-bridge/目录下。1. 克隆仓库并启动git clone https://gitlink.org.cn/ccfos/nightingale.git cd nightingale/docker/compose-bridge docker compose up -d国内网络 Docker Hub 拉取镜像可能很慢可使用镜像加速器或从m.daocloud.io代理拉取。备注上面给的 gitlink 的地址是国内 git repo 地址建议优先使用 github.com/ccfos/nightingale 这个 github 的地址gitlink 会稍微滞后一些发布 releases 的时候是在 github 发布。2. 启动后你会得到 5 个容器容器镜像用途端口mysqlmysql:8关系型数据库存用户、告警规则、仪表盘等3306redisredis:6.2缓存存 JWT token、心跳元信息6379victoriametricsvictoriametrics/victoria-metrics:v1.79.12时序数据库兼容 Prometheus性能更好8428nightingaleflashcatcloud/nightingale:latest夜莺核心服务17000, 20090categrafflashcatcloud/categraf:latest数据采集器采集 CPU/内存/磁盘等—3. 登录浏览器访问http://服务器IP:17000默认用户名root默认密码root.2020。二、当前 docker-compose.yaml 完整内容networks: nightingale: driver: bridge services: mysql: image: mysql:8 container_name: mysql hostname: mysql restart: always environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: 1234 volumes: - ./mysqldata:/var/lib/mysql/ - ../initsql:/docker-entrypoint-initdb.d/ - ./etc-mysql/my.cnf:/etc/my.cnf networks: - nightingale ports: - 3306:3306 redis: image: redis:6.2 container_name: redis hostname: redis restart: always environment: TZ: Asia/Shanghai networks: - nightingale ports: - 6379:6379 victoriametrics: image: victoriametrics/victoria-metrics:v1.79.12 container_name: victoriametrics hostname: victoriametrics restart: always environment: TZ: Asia/Shanghai ports: - 8428:8428 networks: - nightingale command: - --loggerTimezoneAsia/Shanghai nightingale: image: flashcatcloud/nightingale:latest container_name: nightingale hostname: nightingale restart: always environment: GIN_MODE: release TZ: Asia/Shanghai WAIT_HOSTS: mysql:3306, redis:6379 volumes: - ./etc-nightingale:/app/etc networks: - nightingale ports: - 17000:17000 - 20090:20090 depends_on: - mysql - redis - victoriametrics command: - /app/n9e categraf: image: flashcatcloud/categraf:latest container_name: categraf hostname: categraf01 restart: always environment: TZ: Asia/Shanghai HOST_PROC: /hostfs/proc HOST_SYS: /hostfs/sys HOST_MOUNT_PREFIX: /hostfs WAIT_HOSTS: nightingale:17000, nightingale:20090 volumes: - ./etc-categraf:/etc/categraf/conf - /:/hostfs networks: - nightingale depends_on: - nightingale三、重要注意事项 ⚠️1. 仅适合测试不建议直接上生产官方文档明确指出Docker Compose 方式仅用于快速测试不推荐在生产环境使用。如果要在生产环境使用需要对 Docker Compose 有深入理解Volume 持久化、网络、升级策略等。生产环境推荐二进制部署 systemd 托管开机自启、挂了自动拉起、日志滚动、升级方便。2. 数据持久化MySQL 数据挂载到./mysqldata务必保证此目录不随容器删除而丢失。VictoriaMetrics 默认没有挂载数据卷——容器删除后时序数据全部丢失如果需要持久化应添加 volume 挂载- ./vmdata:/victoria-metrics-data并添加-retentionPeriod90d参数。Redis也无持久化配置重启即丢失 JWT token用户需重新登录和心跳元信息。3. MySQL 初始化容器首次启动时../initsql目录下的 SQL 文件会自动导入创建夜莺所需的数据库表结构。这是通过 MySQL 镜像的/docker-entrypoint-initdb.d/机制完成的只在数据库首次创建时执行。4. 密码安全MySQL root 密码默认是1234生产环境务必修改MYSQL_ROOT_PASSWORD并同步修改etc-nightingale/config.toml中的 DSN 连接串。夜莺 Web 默认密码root.2020登录后立即修改。5. 集群模式如果要部署多个n9e实例组成集群不能用默认的 Docker Compose。需要修改etc-nightingale/config.toml让所有 n9e 实例指向同一套外部的 MySQL 和 Redis。6. 边缘模式不支持 Docker边缘机房需要的n9e-edge进程社区目前没有提供 Docker 镜像边缘模式只能用二进制方式部署。7. 可选替代PostgreSQL host 网络模式仓库还提供了另外两种 Compose 变体compose-postgres/用 PostgreSQL 替代 MySQLcompose-host-network/使用network_mode: host避免 bridge 网络的端口映射开销适合单机高性能场景8. 版本选择仓库中有 V5nightingale/docker/和 V9nightingale/docker/compose-bridge/两套 Compose。V5 的架构是 nserver nwebapi 分离模式V9 已合并为单一nightingale容器。建议使用 V9文档路径为docker/compose-bridge/。9. Categraf 采集器注意Categraf 挂载了宿主机根目录/: /hostfs来读取/proc、/sys等系统指标。如果宿主机也是 Mac比如你当前环境是 macOSDocker 容器内的/hostfs/proc实际是 Linux VM 的 proc采集到的 CPU/内存是 Docker Desktop 虚拟机的指标不是 macOS 宿主机的。四、总结场景推荐方案快速体验/演示docker compose up -d5 分钟搞定生产环境二进制部署 systemd 托管K8s 环境Helm 部署需要边缘告警中心端 Docker Compose 边缘二进制 n9e-edge
返回列表