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

118 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 📝 技术笔记:构建全能监控栈 (Glances + InfluxDB + Grafana)
author: shenwei
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 场景应用
### 场景 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 的查询脚本!