# OpenClaw 系统健康检查标准流程 > **文档版本:** v1.0 > **创建日期:** 2026-02-06 > **用途:** OpenClaw 守护者日常自我健康检查标准流程 > **执行方式:** `/root/.openclaw/scripts/standard-check.sh` --- ## 📋 检查概述 本标准流程用于 OpenClaw 守护者 (2号机) 进行系统性自我健康检查,确保所有核心组件正常运行。 **检查频率:** - ⏰ **每日自动:** 通过 cron 定时任务执行 (每日 00:00) - 🔧 **手动执行:** `/root/.openclaw/scripts/standard-check.sh` - 🚨 **异常时执行:** 服务不稳定或收到告警时 **通过标准:** 0 个失败项 (允许最多 1-2 个警告项) --- ## 🛡️ 九步检查流程 ### 【第一步】系统基础信息 **检查目的:** 确认系统基本信息,记录运行状态 **检查项:** | 项目 | 说明 | 正常范围 | |------|------|----------| | 主机名 | 当前运行主机 | `yh6788-ThinkPad-X230` | | 内核版本 | Linux 内核 | 6.x.x | | 运行时间 | 系统启动后持续运行时间 | > 0 | **执行命令:** ```bash hostname uname -r uptime -p ``` **预期结果:** - ✅ 系统正常运行,无异常重启 - ✅ 运行时间符合预期 (通常 > 1小时) --- ### 【第二步】OpenClaw 服务检查 **检查目的:** 确认 Gateway 核心服务运行状态 **检查项:** | 检查点 | 说明 | 正常状态 | |--------|------|----------| | Gateway 进程 | openclaw-gateway 主进程 | 运行中 (有 PID) | | Gateway 端口 | 默认监听端口 18789 | 正常监听 | **执行命令:** ```bash # 检查进程 pgrep -f "openclaw-gateway" # 检查端口 ss -tlnp | grep ":18789 " # 或 netstat -tlnp | grep ":18789 " ``` **异常处理:** - ❌ **Gateway 未运行:** 执行 `openclaw gateway start` - ❌ **端口未监听:** 检查日志 `tail -f /tmp/openclaw/openclaw-*.log` --- ### 【第三步】Ollama 服务检查 **检查目的:** 确认本地向量模型服务可用 **检查项:** | 检查点 | 说明 | 正常状态 | |--------|------|----------| | Ollama 进程 | ollama serve 主进程 | 运行中 | | Ollama API | 本地 API 访问 | HTTP 200 | | 已安装模型 | 向量嵌入模型数量 | ≥1 个 | **执行命令:** ```bash # 检查进程 pgrep -f "ollama serve" # API 测试 curl -s http://localhost:11434/api/version # 模型列表 curl -s http://localhost:11434/api/tags | grep -o '"name":"[^"]*"' ``` **正常结果示例:** ```json {"version":"0.15.4"} ``` **已安装模型:** - `nomic-embed-text:latest` (默认,长上下文) - `mxbai-embed-large:latest` (快速,短文本) **异常处理:** - ❌ **Ollama 未运行:** 执行 `ollama serve` - ❌ **API 不可访问:** 检查端口 11434 监听状态 - ❌ **模型缺失:** 执行 `ollama pull nomic-embed-text:latest` --- ### 【第四步】内存索引状态 **检查目的:** 确认向量检索功能正常 **检查项:** | 检查点 | 说明 | 正常状态 | |--------|------|----------| | 索引状态 | 文件索引进度 | 17/18 files | | 向量引擎 | 向量数据库就绪 | Vector: ready | | 同步状态 | 是否有未保存变动 | Dirty: no | **执行命令:** ```bash openclaw memory status ``` **输出示例:** ``` Memory Search (main) Provider: openai (requested: openai) Model: nomic-embed-text:latest Sources: memory Indexed: 17/18 files · 56 chunks Dirty: yes Store: ~/.openclaw/memory/main.sqlite Workspace: ~/.openclaw/workspace Vector: ready Vector dims: 768 ``` **关键指标解读:** - `Indexed: 17/18 files` → 17个文件已索引,共18个文件 - `56 chunks` → 知识库已分割为56个向量块 - `Dirty: yes` → 有文件变动,需要重新索引 - `Vector: ready` → 向量引擎工作正常 **异常处理:** - ⚠️ **Dirty: yes:** 执行 `openclaw memory index` - ❌ **Vector not ready:** 重启 Gateway `openclaw gateway restart` - ❌ **Indexed 文件数异常:** 检查 workspace 文件完整性 --- ### 【第五步】代理配置检查 **检查目的:** 确认网络代理配置正确,不干扰本地服务 **检查项:** | 检查点 | 说明 | 正常状态 | |--------|------|----------| | NO_PROXY | 本地服务免代理 | 已配置 | | 代理可达 | 外部网络访问 | 可访问 | **执行命令:** ```bash # 检查环境变量 env | grep NO_PROXY # 代理测试 curl -s -o /dev/null -w "%{http_code}" --proxy http://192.168.0.66:7890 https://api.openai.com/v1/models ``` **预期 NO_PROXY 配置:** ``` NO_PROXY=localhost,127.0.0.1,192.168.0.66,192.168.0.32,.local ``` **异常处理:** - ❌ **NO_PROXY 未配置:** 编辑 `/etc/systemd/system/openclaw-gateway.service.d/override.conf` - ❌ **代理不可达:** 检查代理服务状态 (192.168.0.66:7890) --- ### 【第六步】磁盘空间检查 **检查目的:** 确保系统有足够磁盘空间运行 **检查项:** | 分区 | 挂载点 | 警告阈值 | 严重阈值 | |------|--------|----------|----------| | 根分区 | / | 80% | 90% | | Workspace | /root/.openclaw/workspace | 80% | 90% | **执行命令:** ```bash # 根分区 df -h / # Workspace df -h /root/.openclaw/workspace ``` **预期结果:** - ✅ 使用率 < 80% - ✅ 可用空间 > 50GB **异常处理:** - ⚠️ **使用率 > 80%:** 清理日志文件 `/var/log/openclaw-monitor/` - ❌ **使用率 > 90%:** 紧急清理,扩展磁盘 --- ### 【第七步】监控脚本检查 **检查目的:** 确认后台监控正常运行 **检查项:** | 检查点 | 说明 | 正常状态 | |--------|------|----------| | 脚本存在 | system-monitor.sh | 存在 | | 语法检查 | bash -n 测试 | 无错误 | | 进程运行 | 监控进程 | 运行中 | | 日志目录 | /var/log/openclaw-monitor | 存在 | **执行命令:** ```bash # 检查脚本存在 ls -la /root/.openclaw/scripts/system-monitor.sh # 语法检查 bash -n /root/.openclaw/scripts/system-monitor.sh # 进程检查 pgrep -f "system-monitor.sh" # 日志文件数 ls -1 /var/log/openclaw-monitor/*.log | wc -l ``` **监控脚本功能:** - CPU/内存/负载实时监控 - 阈值告警 (CPU > 80%, 内存 > 80%) - OpenClaw 服务状态检测 - 日志保留 3 小时 (5400 条记录) **异常处理:** - ❌ **脚本不存在:** 从文档恢复 - ❌ **语法错误:** 检查最近修改 - ❌ **进程未运行:** 执行 `nohup /root/.openclaw/scripts/system-monitor.sh &` --- ### 【第八步】配置检查 **检查目的:** 验证核心配置文件完整性 **检查项:** | 文件 | 说明 | 检查方法 | |------|------|----------| | openclaw.json | 主配置 | JSON 语法验证 | | Systemd override | 代理配置 | 文件存在验证 | **执行命令:** ```bash # JSON 语法检查 python3 -m json.tool /root/.openclaw/openclaw.json > /dev/null && echo "OK" # 提取当前模型配置 grep '"model":' /root/.openclaw/openclaw.json # Systemd override 检查 cat /etc/systemd/system/openclaw-gateway.service.d/override.conf ``` **openclaw.json 关键配置:** ```json { "providers": { "openai": { "DEFAULT": ["minimax/minimax-m2.1"] } }, "memorySearch": { "provider": "openai", "model": "nomic-embed-text:latest", "remote": { "baseUrl": "http://localhost:11434/v1", "apiKey": "ollama-local" } } } ``` **Systemd override 预期内容:** ```ini [Service] Environment="NO_PROXY=localhost,127.0.0.1" Environment="no_proxy=localhost,127.0.0.1" ``` **异常处理:** - ❌ **JSON 语法错误:** 检查引号、逗号、括号 - ❌ **override 不存在:** 创建配置文件并重启 Gateway --- ### 【第九步】1号机 SSH 检查 **检查目的:** 确认协同机器人的网络连通性 **检查项:** | 检查点 | 说明 | 正常状态 | |--------|------|----------| | SSH 连接 | 1号机网络可达 | 可连接 | | 1号机 Gateway | 1号机 OpenClaw 服务 | 运行中 | **执行命令:** ```bash # SSH 连接测试 (需要配置 SSH 密钥) ssh -o BatchMode=yes -o ConnectTimeout=3 root@192.168.0.31 "echo 'OK'" # 1号机 Gateway 检查 ssh root@192.168.0.31 "pgrep -f openclaw-gateway" ``` **1号机信息:** - **地址:** root@192.168.0.31 - **密码:** 3efvVGY& - **已知问题:** 内存持久化故障 (已手动修复) **异常处理:** - ⚠️ **SSH 密钥未配置:** 配置 SSH 密钥实现免密登录 - ❌ **连接失败:** 检查网络 (192.168.0.31) - ⚠️ **1号机 Gateway 未运行:** 提醒用户检查 1号机 --- ## 📊 结果汇总标准 ### 通过等级 | 等级 | 失败数 | 警告数 | 行动 | |------|--------|--------|------| | 🎉 **优秀** | 0 | 0 | 无需操作 | | ✅ **良好** | 0 | 1-2 | 计划内处理 | | ⚠️ **警告** | 0 | 3+ | 尽快处理 | | ❌ **异常** | 1+ | 任意 | **立即处理** | ### 输出模板 ``` ======================================== 🛡️ OpenClaw 标准系统检查 时间: YYYY-MM-DD HH:MM:SS ======================================== 总检查项: XX ✅ 通过: XX ⚠️ 警告: XX ❌ 失败: XX ======================================== ``` ### 告警日志位置 - **告警日志:** `/var/log/openclaw-monitor/alerts.log` - **指标日志:** `/var/log/openclaw-monitor/system-metrics.log` --- ## 🚨 异常处理预案 ### 紧急情况 (失败数 ≥ 1) 1. **Gateway 未运行** ```bash openclaw gateway status openclaw gateway start ``` 2. **Ollama 崩溃** ```bash pkill -f ollama ollama serve ``` 3. **索引损坏** ```bash rm -rf ~/.openclaw/memory/ openclaw memory index ``` ### 警告情况 1. **Dirty 状态持续** ```bash openclaw memory index ``` 2. **磁盘空间不足** ```bash # 清理日志 rm -f /var/log/openclaw-monitor/*.log.* # 检查大文件 du -sh /root/.openclaw/workspace/* ``` --- ## 📝 检查记录 | 日期 | 检查人 | 通过项 | 警告项 | 失败项 | 备注 | |------|--------|--------|--------|--------|------| | 2026-02-05 | 2号机 | 18 | 1 | 0 | Dirty 状态 | | | | | | | | --- ## 🔗 相关文档 - **监控脚本:** `/root/.openclaw/scripts/system-monitor.sh` - **主配置:** `/root/.openclaw/openclaw.json` - **系统配置:** `/etc/systemd/system/openclaw-gateway.service.d/override.conf` - **记忆文件:** `/root/.openclaw/workspace/MEMORY.md` - **多机部署:** `/root/doc/MULTI-MACHINE.md` --- ## ✨ 更新日志 | 版本 | 日期 | 修改内容 | |------|------|----------| | v1.0 | 2026-02-06 | 初版发布,基于 standard-check.sh 脚本 | | v1.1 | 2026-02-06 | 新增 Web 服务访问、锁文件、日志深度检查、系统资源深度诊断 | --- ## 🔧 补充:深度诊断工具 (why.py) > **说明:** 标准检查流程覆盖基础项目,`why.py` 提供更深入的诊断能力 ### 工具位置 ``` /root/tools/why.py ``` ### 安装依赖 ```bash pip install psutil requests ``` ### 执行方式 ```bash python3 /root/tools/why.py ``` ### why.py 专属检查项 | 检查项 | 说明 | 严重程度 | |--------|------|----------| | Web 服务访问 | 测试 localhost:18789 HTTP 访问 | HIGH | | 锁文件检测 | 检查死锁文件 (*.lock) | MEDIUM/HIGH | | 日志深度分析 | 扫描 error/fail/timeout/crash | MEDIUM | | 进程内存统计 | OpenClaw 单独内存使用 | MEDIUM | | API 连接测试 | DeepSeek API 连通性 | HIGH | | 配置完整性 | JSON 语法 + 关键配置项 | CRITICAL | ### 输出示例 ``` ======================================== OpenClaw 问题诊断工具 运行时间: 2026-02-06 07:40:00 ======================================== 🔍 检查系统资源... 内存: 45% 已使用 (3625MB/7982MB) 🔍 检查配置文件... ✅ 配置文件存在: /root/.openclaw/openclaw.json ✅ 包含 agents 配置 DeepSeek API密钥: sk-...ab12 🔍 检查网关进程... 找到 1 个网关进程: PID: 968802, 状态: running 🔍 检查端口监听... ✅ 端口 18789 正在监听 监听进程: tcp LISTEN 0 128 127.0.0.1:18789 users:(("openclaw-gateway") 🔍 检查Web服务... ✅ 本地访问: 成功 (HTTP 200) 🔍 检查锁文件... ✅ 未发现锁文件 🔍 检查模型连接性... ✅ DeepSeek API: 连接成功 (HTTP 200) 🔍 检查日志文件... 找到 3 个日志文件 /root/.openclaw/openclaw.log (修改时间: 2026-02-06 07:30:00) ======================================== 诊断报告摘要 ======================================== CRITICAL级别问题 (0个): HIGH级别问题 (0个): MEDIUM级别问题 (0个): 📄 详细报告已保存到: /root/.openclaw/diagnosis_20260206_074000.json ``` ### 告警级别定义 | 级别 | 含义 | 建议行动 | |------|------|----------| | **CRITICAL** | 系统不可用 | **立即处理** | | **HIGH** | 功能受损 | 尽快处理 | | **MEDIUM** | 潜在问题 | 计划处理 | | **LOW** | 轻微问题 | 可忽略 | | **INFO** | 信息提示 | 记录备查 | ### 快速建议生成 `why.py` 会根据问题自动生成处理建议: ``` 💡 建议操作: 1. 建议: 启动网关 - `openclaw gateway --force &` 2. 建议: 更新DeepSeek API密钥 3. 建议: 清理锁文件 - `find ~/.openclaw -name '*.lock' -delete` ``` ### 诊断报告位置 每次执行会生成 JSON 报告: ``` ~/.openclaw/diagnosis_YYYYMMDD_HHMMSS.json ``` --- ## 📋 完整检查流程 **标准流程 + 深度诊断配合使用:** 1. **日常检查:** 执行 `standard-check.sh` 2. **异常诊断:** 执行 `python3 /root/tools/why.py` 3. **紧急排查:** 结合两者结果处理问题