269 lines
6.2 KiB
Markdown
269 lines
6.2 KiB
Markdown
# OpenClaw 配置健康稳定运营指南
|
|
|
|
> 文档版本: v1.0
|
|
> 创建时间: 2026-02-07
|
|
> 适用: 青龙 & 2号机
|
|
|
|
---
|
|
|
|
## 核心原则
|
|
|
|
### 优先级排序
|
|
|
|
| 优先级 | 原则 | 说明 |
|
|
|--------|------|------|
|
|
| **1** | **稳定 > 功能** | 宁可禁用功能,也不让系统崩溃 |
|
|
| **2** | **简单 > 复杂** | 避免复杂的批量操作,单条处理更可靠 |
|
|
| **3** | **监控 > 信任** | 关键操作要有日志和状态检查 |
|
|
| **4** | **备份 > 自信** | 自动备份配置文件,防止灾难性错误 |
|
|
|
|
---
|
|
|
|
## 配置备份策略
|
|
|
|
### 自动备份脚本
|
|
|
|
```bash
|
|
# 脚本位置
|
|
/root/.openclaw/scripts/config-backup-monitor.sh
|
|
|
|
# 功能
|
|
- 每60秒检查 openclaw.json 变化
|
|
- 自动备份(带时间戳)
|
|
- 最多保留10个版本
|
|
```
|
|
|
|
### 使用方法
|
|
|
|
```bash
|
|
# 启动监控
|
|
nohup /root/.openclaw/scripts/config-backup-monitor.sh > /var/log/openclaw-config-backup.log 2>&1 &
|
|
|
|
# 查看日志
|
|
tail -f /var/log/openclaw-config-backup.log
|
|
|
|
# 查看备份
|
|
ls -la /root/.openclaw/backups/
|
|
```
|
|
|
|
---
|
|
|
|
## 监控体系
|
|
|
|
### 系统级监控
|
|
|
|
| 监控项 | 脚本 | 频率 |
|
|
|--------|------|------|
|
|
| Gateway 状态 | system-monitor.sh | 每10分钟 |
|
|
| 配置变更 | config-backup-monitor.sh | 每60秒 |
|
|
| Telegram 连接 | telegram-watchdog.sh | 持续运行 |
|
|
| 会话文件大小 | 内置监控 | 实时 |
|
|
|
|
### 告警阈值
|
|
|
|
| 指标 | 警告 | 危险 | 处理 |
|
|
|------|------|------|------|
|
|
| 内存使用 | >70% | >85% | 检查进程 |
|
|
| 会话文件 | >5MB | >8MB | 建议新会话 |
|
|
| Gateway 响应 | >30s | >60s | 重启 Gateway |
|
|
| 磁盘空间 | <20% | <10% | 清理日志 |
|
|
|
|
---
|
|
|
|
## 问题排查清单
|
|
|
|
### 1. Gateway 无法连接
|
|
|
|
```bash
|
|
# 排查步骤
|
|
1. 检查 NO_PROXY 是否包含 Ollama 地址
|
|
2. Gateway 是普通进程,需手动设置环境变量
|
|
3. 执行: NO_PROXY="192.168.0.66" openclaw gateway restart
|
|
```
|
|
|
|
### 2. Embedding 上下文超限
|
|
|
|
```bash
|
|
# 症状
|
|
input length exceeds the context length
|
|
|
|
# 解决方案
|
|
sed -i 's/mxbai/nomic/' /root/.openclaw/openclaw.json
|
|
|
|
# 模型对比
|
|
| 模型 | 大小 | 上下文 | 适用 |
|
|
|------|------|--------|------|
|
|
| mxbai-embed-large | 669MB | 短 (512) | 短文本 |
|
|
| nomic-embed-text | 274MB | 长 (8192) | 长文档 |
|
|
```
|
|
|
|
### 3. Ollama 批量上传 404
|
|
|
|
```bash
|
|
# 症状
|
|
batch file upload failed: 404
|
|
|
|
# 处理
|
|
正常现象,OpenClaw 自动降级到非批量模式,无需干预
|
|
```
|
|
|
|
### 4. Compaction 卡死 (重点!)
|
|
|
|
```bash
|
|
# 症状
|
|
- 系统无响应,会话中断
|
|
- Gateway 无法关闭 (shutdown timed out)
|
|
- 日志显示 compaction retry 反复出现
|
|
|
|
# 根因
|
|
大会话文件 (9MB+) 导致 compaction 算法超时
|
|
|
|
# 解决方案
|
|
# 1. 清理卡死的会话
|
|
rm /root/.openclaw/agents/main/sessions/[session-id].jsonl
|
|
|
|
# 2. 重启 Gateway
|
|
openclaw gateway restart
|
|
|
|
# 3. 预防
|
|
# agents.defaults.compaction.enabled = false
|
|
```
|
|
|
|
### 5. LLM 请求超时
|
|
|
|
```bash
|
|
# 排查步骤
|
|
1. 检查模型 API 是否正常
|
|
2. 查看代理是否通畅
|
|
3. 检查是否有会话文件过大
|
|
4. 重启 Gateway 清理状态
|
|
|
|
# 日志关键词
|
|
FailoverError: LLM request timed out
|
|
```
|
|
|
|
---
|
|
|
|
## 性能优化经验
|
|
|
|
### 青龙 (1号机) - 8GB 内存
|
|
|
|
| 场景 | 推荐配置 | 说明 |
|
|
|------|----------|------|
|
|
| 轻量服务 | 2-3并发 | Ollama / 监控脚本 |
|
|
| 中等负载 | 1-2并发 | 可运行一个 Agent |
|
|
| 本地模型 | qwen2.5:3b / llama3:8b | 注意内存占用 |
|
|
| 向量化 | nomic-embed-text | 274MB,适合 SSD |
|
|
|
|
### 2号机 - 8GB 内存 + HDD
|
|
|
|
| 场景 | 推荐配置 | 说明 |
|
|
|------|----------|------|
|
|
| 避免大量 | 文件 I/O 操作 | HDD 读写慢 |
|
|
| 本地模型 | qwen2.5:3b (2GB) | 流畅运行 |
|
|
| 监控脚本 | 定期清理日志 | 防止磁盘满 |
|
|
|
|
---
|
|
|
|
## 技术决策记录
|
|
|
|
| 决策 | 选择 | 原因 |
|
|
|------|------|------|
|
|
| 向量模型 | nomic-embed-text | 长上下文适合文档索引 |
|
|
| 批量写入 | 禁用 | Ollama 不稳定,单条更可靠 |
|
|
| paths 配置 | symlink 替代 | OpenClaw 不支持自定义路径 |
|
|
| compaction | 监控为主 | 大文件会卡死,需手动清理 |
|
|
| 版本升级 | 稳定优先 | 不盲目追新,验证后再升级 |
|
|
|
|
---
|
|
|
|
## 配置修改流程
|
|
|
|
### 修改前
|
|
|
|
1. ✅ 确认修改必要性
|
|
2. ✅ 备份当前配置
|
|
3. ✅ 记录修改意图
|
|
|
|
### 修改中
|
|
|
|
1. ✅ 使用 `openclaw config.patch` 或手动编辑
|
|
2. ✅ 修改后检查语法: `python3 -m json.tool openclaw.json > /dev/null`
|
|
|
|
### 修改后
|
|
|
|
1. ✅ 重启 Gateway: `openclaw gateway restart`
|
|
2. ✅ 观察日志: `tail -f /tmp/openclaw/openclaw-*.log`
|
|
3. ✅ 验证功能正常
|
|
|
|
---
|
|
|
|
## 常见问题速查
|
|
|
|
| 问题 | 快速解决 |
|
|
|------|----------|
|
|
| Gateway 无响应 | `openclaw gateway restart` |
|
|
| Telegram 断开 | 检查代理,查看 telegram-watchdog.log |
|
|
| 模型调用失败 | 检查 API Key,确认网络通畅 |
|
|
| 内存占用过高 | 强制重启 Gateway |
|
|
| 日志文件过大 | `> /tmp/openclaw/openclaw.log` |
|
|
|
|
---
|
|
|
|
## 经验教训
|
|
|
|
### 历史问题
|
|
|
|
| 日期 | 问题 | 教训 |
|
|
|------|------|------|
|
|
| 2026-02-04 | 内存管理器缺少 embedding 模型 | 需单独配置 provider + embedding |
|
|
| 2026-02-05 | memorySearch.paths 配置无效 | OpenClaw 不支持自定义 paths,用 symlink 替代 |
|
|
| 2026-02-05 | Gateway 反复重启 | 不要手动添加 agents.memorySearch 配置 |
|
|
| 2026-02-06 | Compaction 卡死导致"死机" | 大会话需要分片或禁用 compaction |
|
|
|
|
### 核心认识
|
|
|
|
1. **Gateway 是普通进程** - 不继承 systemd 环境变量,需手动设置 NO_PROXY
|
|
2. **memorySearch 是独立 plugin** - 不走 agents.defaults 配置
|
|
3. **Symlink 解决路径问题** - OpenClaw 不支持 paths,用 `ln -s` 替代
|
|
4. **Compaction 不是必须的** - 可以禁用,不会影响对话功能
|
|
|
|
---
|
|
|
|
## 维护命令速查
|
|
|
|
```bash
|
|
# Gateway 管理
|
|
openclaw gateway status
|
|
openclaw gateway restart
|
|
openclaw gateway stop
|
|
|
|
# 问题排查
|
|
openclaw doctor --fix
|
|
openclaw doctor
|
|
|
|
# 配置管理
|
|
openclaw config.get
|
|
openclaw config.patch
|
|
|
|
# 日志查看
|
|
tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log
|
|
|
|
# 内存清理
|
|
rm /root/.openclaw/agents/main/sessions/*.jsonl
|
|
openclaw gateway restart
|
|
```
|
|
|
|
---
|
|
|
|
## 参考文档
|
|
|
|
- `/root/doc/OPENCLAW_HEALTH_CHECK.md` - 健康检查指南
|
|
- `/root/doc/TROUBLESHOOTING_GUIDE.md` - 故障排查
|
|
- `/root/doc/MULTI-MACHINE.md` - 多机部署
|
|
- `/root/doc/COORDINATION_DEPLOYMENT.md` - 协同部署
|
|
|
|
---
|
|
|
|
*文档维护: 2号机 (守护者)*
|