From 0e344a0bc66e6ea7aa5653ebc8151102a9c854a6 Mon Sep 17 00:00:00 2001 From: weishen Date: Sat, 28 Mar 2026 22:02:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E4=BB=BB=E5=8A=A1:=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=202026-03-28=20=E5=A4=87=E4=BB=BD=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openclaw/openclaw备份任务.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/openclaw/openclaw备份任务.md b/openclaw/openclaw备份任务.md index 6ca5167d..311154e0 100644 --- a/openclaw/openclaw备份任务.md +++ b/openclaw/openclaw备份任务.md @@ -2,9 +2,11 @@ ## 备份状态表格 -| 日期 | 时间 | 服务器 | 备份文件 | 状态 | -| ---------- | ----- | -------- | ----------------------------------- | ---- | -| 2026-03-27 | 22:02 | Mac Mini | openclaw-macmini-20260327220222.tar | ✅ 成功 | +| 日期 | 时间 | 服务器 | 备份文件 | 状态 | +| ---------- | ----- | -------- | ------------------------------------ | ---- | +| 2026-03-28 | 22:02 | Mac Mini | openclaw-macmini-20260328220157.tar | ✅ 成功 | +| 2026-03-28 | 22:02 | Ubuntu2 | openclaw-ubuntu2-20260328220208.tar | ✅ 成功 | +| 2026-03-27 | 22:02 | Mac Mini | openclaw-macmini-20260327220222.tar | ✅ 成功 | | 2026-03-27 | 22:02 | Ubuntu2 | openclaw-ubuntu2-20260327220222.tar | ✅ 成功 | | 2026-03-26 | 22:02 | Mac Mini | openclaw-macmini-20260326220236.tar | ✅ 成功 | | 2026-03-26 | 22:02 | Ubuntu2 | openclaw-ubuntu2-20260326220236.tar | ✅ 成功 | From b3f36dc6d47ce6aa0aedc60c6f569d21409a9cd9 Mon Sep 17 00:00:00 2001 From: weishen Date: Sat, 28 Mar 2026 22:18:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9AUbuntu2=20?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E6=A0=88=E9=83=A8=E7=BD=B2=E7=AC=94=E8=AE=B0?= =?UTF-8?q?=20(Telegraf=20+=20InfluxDB=20+=20Grafana)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../knowledgebase/monitor-stack-deployment.md | 448 ++++++++++++++++++ 1 file changed, 448 insertions(+) create mode 100644 openclaw/knowledgebase/monitor-stack-deployment.md diff --git a/openclaw/knowledgebase/monitor-stack-deployment.md b/openclaw/knowledgebase/monitor-stack-deployment.md new file mode 100644 index 00000000..e0d056b8 --- /dev/null +++ b/openclaw/knowledgebase/monitor-stack-deployment.md @@ -0,0 +1,448 @@ +# Ubuntu2 监控栈部署笔记 (Telegraf + InfluxDB + Grafana) + +> 部署时间:2026-03-28 +> 目的:收集服务器性能指标并通过 Grafana 可视化历史数据 + +--- + +## 一、架构概述 + +``` +┌─────────────────────────────────────────────────────────┐ +│ Ubuntu2 │ +│ │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ +│ │ Telegraf │───►│ InfluxDB │───►│ Grafana │ │ +│ │ (采集器) │ │ (时序数据库) │ │ (可视化) │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +│ │ │ │ +│ ▼ ▼ │ +│ 系统指标:CPU、内存、 http://192.168.3.45:3000 +│ 磁盘、网络、负载等 +└─────────────────────────────────────────────────────────┘ +``` + +--- + +## 二、部署环境 + +| 项目 | 信息 | +|------|------| +| 服务器 | Ubuntu2 (192.168.3.45) | +| Docker | 已安装 | +| 部署目录 | `~/docker/monitor-stack/` | +| 访问地址 | Grafana: http://192.168.3.45:3000 | + +--- + +## 三、为什么不使用 Glances 原生 Export + +### 尝试过的方案 + +1. **Glances + InfluxDB2 Export** + - 问题:Glances latest-full 镜像有兼容性问题 + - 错误:`influxdb2_host` 参数不被识别 + - 原因:Glances Docker 镜像的 export 模块加载问题 + +2. **结论** + - Glances 官方 Docker 镜像与 InfluxDB2 export 存在兼容性问题 + - 改用 Telegraf 作为替代方案,更加稳定可靠 + +--- + +## 四、最终方案:Telegraf + InfluxDB + Grafana + +### 4.1 目录结构 + +``` +~/docker/monitor-stack/ +├── docker-compose.yml # 容器编排配置 +├── telegraf.conf # Telegraf 采集配置 +├── glances.conf # Glances 配置(保留,未使用) +└── grafana/ + ├── provisioning/ + │ ├── datasources/ + │ │ └── influxdb.yml # Grafana 数据源 + │ └── dashboards/ + │ └── dashboards.yml # Dashboard provisioning + └── dashboards/ + └── telegraf-system.json # 自定义 Dashboard +``` + +### 4.2 docker-compose.yml + +```yaml +version: '3' + +services: + # InfluxDB 时序数据库 + influxdb: + image: influxdb:2.7-alpine + container_name: influxdb + restart: unless-stopped + ports: + - "8086:8086" + environment: + - DOCKER_INFLUXDB_INIT_MODE=setup + - DOCKER_INFLUXDB_INIT_USERNAME=admin + - DOCKER_INFLUXDB_INIT_PASSWORD=admin123 + - DOCKER_INFLUXDB_INIT_ORG=home-lab + - DOCKER_INFLUXDB_INIT_BUCKET=server-metrics + - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-admin-token + volumes: + - influxdb-data:/var/lib/influxdb2 + healthcheck: + test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8086/health || exit 1"] + interval: 10s + timeout: 5s + retries: 5 + networks: + - monitor-network + + # Telegraf 采集器 + telegraf: + image: telegraf:1.31-alpine + container_name: telegraf + restart: unless-stopped + depends_on: + influxdb: + condition: service_started + environment: + - HOST_PROC=/host/proc + - HOST_SYS=/host/sys + - HOST_ETC=/host/etc + volumes: + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /etc:/host/etc:ro + - ./telegraf.conf:/etc/telegraf/telegraf.conf:ro + networks: + - monitor-network + command: telegraf --config /etc/telegraf/telegraf.conf + + # Grafana 可视化仪表板 + grafana: + image: grafana/grafana:11.3.0-ubuntu + container_name: grafana + restart: unless-stopped + ports: + - "3000:3000" + environment: + - GF_SECURITY_ADMIN_USER=admin + - GF_SECURITY_ADMIN_PASSWORD=admin123 + - GF_USERS_ALLOW_SIGN_UP=false + volumes: + - grafana-data:/var/lib/grafana + - ./grafana/provisioning:/etc/grafana/provisioning:ro + - ./grafana/dashboards:/var/lib/grafana/dashboards + depends_on: + - influxdb + healthcheck: + test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1"] + interval: 10s + timeout: 5s + retries: 3 + networks: + - monitor-network + +volumes: + influxdb-data: + driver: local + grafana-data: + driver: local + +networks: + monitor-network: + name: monitor-network + driver: bridge +``` + +### 4.3 telegraf.conf + +```bash +# Telegraf 采集配置 + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + flush_interval = "10s" + debug = false + quiet = false + +# CPU 指标 +[[inputs.cpu]] + percpu = true + totalcpu = true + +# 内存指标 +[[inputs.mem]] + +# 磁盘使用 +[[inputs.disk]] + +# 磁盘 I/O +[[inputs.diskio]] + +# 系统指标 +[[inputs.system]] + +# 网络接口 +[[inputs.net]] + +# 输出到 InfluxDB v2 +[[outputs.influxdb_v2]] + urls = ["http://influxdb:8086"] + token = "my-super-secret-admin-token" + organization = "home-lab" + bucket = "server-metrics" +``` + +### 4.4 Grafana 数据源配置 (grafana/provisioning/datasources/influxdb.yml) + +```yaml +apiVersion: 1 + +datasources: + - name: InfluxDB + type: influxdb + access: proxy + url: http://influxdb:8086 + jsonData: + version: Flux + organization: home-lab + defaultBucket: server-metrics + tlsSkipVerify: true + secureJsonData: + token: my-super-secret-admin-token + isDefault: true + editable: false +``` + +### 4.5 Dashboard Provisioning (grafana/provisioning/dashboards/dashboards.yml) + +```yaml +apiVersion: 1 + +providers: + - name: 'Server Metrics' + orgId: 1 + folder: 'Server Metrics' + folderUid: '' + type: file + disableDeletion: false + updateIntervalSeconds: 30 + allowUiUpdates: true + options: + path: /var/lib/grafana/dashboards +``` + +--- + +## 五、部署命令 + +### 5.1 启动监控栈 + +```bash +cd ~/docker/monitor-stack +docker compose up -d +``` + +### 5.2 检查服务状态 + +```bash +docker compose ps +``` + +### 5.3 查看日志 + +```bash +# 查看所有服务日志 +docker compose logs + +# 查看特定服务日志 +docker compose logs telegraf +docker compose logs influxdb +docker compose logs grafana +``` + +### 5.4 重启服务 + +```bash +docker compose restart <服务名> +``` + +### 5.5 停止服务 + +```bash +docker compose down +``` + +--- + +## 六、访问信息 + +| 服务 | 地址 | 用户名 | 密码 | +|------|------|--------|------| +| Grafana | http://192.168.3.45:3000 | admin | admin123 | +| InfluxDB | http://192.168.3.45:8086 | admin | admin123 | + +--- + +## 七、Dashboard 介绍 + +### 7.1 Ubuntu2 系统监控 + +包含以下 Panel: + +| Panel | 类型 | 说明 | +|-------|------|------| +| CPU 使用率 | Gauge | 实时 CPU 使用百分比 | +| 内存使用率 | Gauge | 实时内存使用百分比 | +| CPU 历史趋势 | Line Chart | 过去 1 小时 CPU 趋势 | +| 内存历史趋势 | Line Chart | 过去 1 小时内存趋势 | +| 网络流量 | Line Chart | 网卡接收/发送速率 | +| 系统负载 (1分钟) | Line Chart | 1分钟平均负载 | +| 磁盘 Inodes | Bar Gauge | Inodes 使用百分比 | +| 系统负载趋势 | Line Chart | 1/5/15分钟负载对比 | + +### 7.2 数据刷新 + +- Telegraf 采集间隔:10 秒 +- Grafana 刷新间隔:10 秒 +- 数据保留:InfluxDB 默认永久(建议后续设置保留策略) + +--- + +## 八、InfluxDB 信息 + +| 项目 | 值 | +|------|-----| +| 组织 | home-lab | +| Bucket | server-metrics | +| Token | my-super-secret-admin-token | + +### 8.1 查询数据 + +使用 Flux 查询语言: + +```bash +# 查询 CPU 使用率 +curl -s -H "Authorization: Token my-super-secret-admin-token" \ + -H "Content-Type: application/vnd.flux" \ + "http://localhost:8086/api/v2/query?org=home-lab" \ + -d 'from(bucket:"server-metrics") |> range(start:-1h) |> filter(fn: (r) => r._measurement == "cpu")' +``` + +### 8.2 已采集的 Measurements + +- `cpu` - CPU 指标 +- `mem` - 内存指标 +- `disk` - 磁盘使用 +- `diskio` - 磁盘 I/O +- `net` - 网络接口 +- `system` - 系统负载 + +--- + +## 九、扩展到其他服务器 + +### 9.1 Mac Mini + +```bash +# 安装 Telegraf +brew install telegraf + +# 创建 telegraf.conf(参考 Ubuntu2 配置) +# 修改 output.influxdb_v2.urls 为 http://192.168.3.45:8086 + +# 启动 Telegraf +telegraf --config telegraf.conf +``` + +### 9.2 Ubuntu1 + +```bash +# 安装 Telegraf +sudo apt update +sudo apt install telegraf + +# 修改 /etc/telegraf/telegraf.conf +# 修改 output.influxdb_v2.urls 为 http://192.168.3.45:8086 + +# 启动 Telegraf +sudo systemctl enable telegraf +sudo systemctl start telegraf +``` + +### 9.3 多主机数据区分 + +在 telegraf.conf 中添加 host tag: + +```toml +[agent] + interval = "10s" + hostname = "macmini" # 添加这行区分主机 +``` + +--- + +## 十、故障排除 + +### 10.1 Telegraf 无法连接 InfluxDB + +检查: +1. Docker 网络是否正确配置 +2. InfluxDB 是否正常运行:`docker compose ps` +3. 查看 Telegraf 日志:`docker compose logs telegraf` + +### 10.2 Grafana 显示 "No Data" + +检查: +1. 数据源是否正确配置 +2. Telegraf 是否正在采集数据 +3. InfluxDB 是否有数据:`curl` 查询验证 + +### 10.3 容器无法启动 + +```bash +# 查看详细错误 +docker compose up + +# 重建容器 +docker compose down +docker compose up -d --force-recreate +``` + +--- + +## 十一、后续优化建议 + +1. **设置数据保留策略** + - 建议保留 30 天数据,避免磁盘空间耗尽 + +2. **添加告警规则** + - CPU > 90% 持续 5 分钟 + - 内存 > 85% 持续 5 分钟 + +3. **扩展 Dashboard** + - 按需添加更多 Panel + - 添加 Docker 容器监控 + +4. **定时备份** + - 备份 InfluxDB 数据 + - 备份 Grafana Dashboard JSON + +--- + +## 十二、相关文件路径 + +- 部署目录:`/home/shenwei/docker/monitor-stack/` +- Grafana 数据卷:`grafana-data` +- InfluxDB 数据卷:`influxdb-data` +- 配置文件:`telegraf.conf` + +--- + +*最后更新:2026-03-28*