---
title: 📝 技术笔记：构建全能监控栈 (Glances + InfluxDB + Grafana)
source:
author: shenwei
published:
created:
description:
tags: [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**。
    - 输入模板 ID：`13544` (Glances 官方模板) 或 `2387`。
    - 瞬间即可看到美观的 CPU、内存、Docker 容器监控大屏。

---

## 4. AI Agent 场景应用

### 场景 B：OpenClaw Agent 深度对接
除了看图表，你可以让 OpenClaw Agent 通过查询 InfluxDB 的 API 来获取“历史洞察”：
- **Agent 指令**：“查询过去 3 小时 M4 GPU 的平均负载，如果超过 70%，请告诉我。”
- **业务逻辑**：这能帮你优化 AI 视频剪辑任务的排程。

---
## 💡 维护小贴士

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

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