Files
nexus/openclaw/monitor/构建全能监控栈 (Glances + InfluxDB + Grafana).md

3.9 KiB
Raw Blame History

title, source, author, published, created, description, tags
title source author published created description tags
📝 技术笔记:构建全能监控栈 (Glances + InfluxDB + Grafana) shenwei
glances
grafana
influxdb

#glances #influxdb #grafana

📝 技术笔记:构建全能监控栈 (Glances + InfluxDB + Grafana)

1. 为什么需要这个组合?

  • Glances (采集层):轻量级、全能。负责抓取 M4 芯片负载、GPU 状态、温度以及 Docker 容器指标。
  • InfluxDB (存储层):时序数据库。专门存储随时间变化的数据,方便回顾昨天或上周的服务器波动。
  • Grafana (展示层):可视化门面。将枯燥的数字变成直观的曲线图,并提供多维度报警功能。

2. Docker Compose 一键部署脚本

在您的服务器上创建目录 ~/monitor,新建 docker-compose.yml

YAML

services:
  # 1. 数据库:存储历史监控数据
  influxdb:
    image: influxdb:2.7
    container_name: monitor-db
    restart: always
    ports:
      - "8086:8086"
    volumes:
      - ./influxdb_data:/var/lib/influxdb2
    environment:
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=admin
      - DOCKER_INFLUXDB_INIT_PASSWORD=your_password_here  # 请修改密码
      - DOCKER_INFLUXDB_INIT_ORG=my-org
      - DOCKER_INFLUXDB_INIT_BUCKET=glances_metrics

  # 2. 采集器:抓取宿主机和 Docker 指标
  glances:
    image: nicolargo/glances:latest
    container_name: monitor-collector
    restart: always
    pid: host
    network_mode: host # 使用 host 模式以获取最精准的硬件指标
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      # 关键:配置导出到 InfluxDB v2
      - GLANCES_OPT=-w --export influxdb2
    depends_on:
      - influxdb

  # 3. 可视化:精美仪表盘
  grafana:
    image: grafana/grafana:latest
    container_name: monitor-ui
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - ./grafana_data:/var/lib/grafana
    depends_on:
      - influxdb

3. 核心配置步骤

第一步:启动容器

Bash

docker compose up -d

第二步:获取 InfluxDB Token

  1. 浏览器访问 http://服务器IP:8086
  2. 使用配置文件中的用户名密码登录。
  3. 进入 Load Data -> API Tokens,生成一个全权限的 Token。
  4. 重要:将此 Token 配置到 Glances 的导出设置中(如果使用环境变量,请更新 docker-compose.yml 中的 InfluxDB 相关配置)。

第三步:配置 Grafana 展示

  1. 浏览器访问 http://服务器IP:3000 (默认 admin/admin)。

  2. 添加数据源:选择 InfluxDB

    • Query Language 选择 Flux
    • URL 填写 http://localhost:8086 (或容器名 http://monitor-db:8086)。
    • 填入 Organization, Token 和 Bucket 名。
  3. 导入现成模板

    • 点击 Dashboards -> New -> Import
    • 输入模板 ID13544 (Glances 官方模板) 或 2387
    • 瞬间即可看到美观的 CPU、内存、Docker 容器监控大屏。

4. AI Agent 场景应用

场景 BOpenClaw Agent 深度对接

除了看图表,你可以让 OpenClaw Agent 通过查询 InfluxDB 的 API 来获取“历史洞察”:

  • Agent 指令:“查询过去 3 小时 M4 GPU 的平均负载,如果超过 70%,请告诉我。”
  • 业务逻辑:这能帮你优化 AI 视频剪辑任务的排程。

💡 维护小贴士

  • 磁盘清理InfluxDB 会产生历史数据。建议在 InfluxDB 设置中配置 Retention Policy (保留策略),例如只保留最近 30 天的数据,防止撑爆磁盘。
  • 安全保护:既然有 Web 界面,请务必在 Grafana 和 InfluxDB 中设置复杂的强密码。

提示:如果你在配置 InfluxDB 2.x 的 Flux 查询语句时遇到困难,可以随时问我,我可以帮你写一段用于 OpenClaw 的查询脚本!