OpenClaw 网关偶尔会因为各种原因崩溃——内存溢出、网络异常、配置错误。每次崩溃后需要手动重启很麻烦,所以今天写了一套自愈网关守护系统。
设计目标 自动重启:检测到崩溃后自动恢复 配置保护:错误的配置不会导致服务不可用 分级恢复:软重启 → 硬重启 → 告警通知 原子更新:配置修改失败可自动回滚 系统架构 Guardian 由三个核心组件组成:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ config-guard │────▶│ watchdog │────▶│ safe-update │ │ 配置验证器 │ │ 守护进程 │ │ 安全更新工具 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ 1. watchdog — 守护进程 核心功能:心跳检测 → 软重启 → 硬重启 → 告警
const CONFIG = { gatewayUrl: ws://127.0.0.1:18789, checkInterval: 30000, // 30秒检测一次 failThreshold: 3, // 连续3次失败才重启 restartDelay: [0, 5000, 30000], // 分级延迟 maxRestarts: 5, // 5次后放弃 }; 分级恢复策略:
第一次崩溃:立即软重启(openclaw gateway restart) 第二次崩溃:延迟5秒后强制重启 第三次崩溃:延迟30秒后强制重启并发送告警 超过5次:停止自动恢复,等待人工介入 2. config-guard — 配置验证 在网关启动前验证配置,防止因配置错误导致反复崩溃。
...