本系列第二十八篇:从"能用"到"可靠"------建立完整的 OpenClaw 可观测性体系,让你的 AI 智能体始终保持健康状态
欢迎回到 OpenClaw 系列教程。经过前面二十七篇的积累,你的 OpenClaw 已经是一套功能完整、能力强大的 AI 智能体系统了。它接入多渠道、掌握多技能、拥有长期记忆、配置了安全防线------可以说,你已经把"龙虾"养得很好了。
但运维不是一次性的工作。当你把 OpenClaw 投入生产环境,让它 7×24 小时不间断运行时,真正的挑战才刚刚开始。服务会不会挂?任务会不会卡住?API 限流了怎么办?配置改错了怎么回滚?这些问题只有在"龙虾"真正跑起来之后才会遇到,而且一个都不会少。
这就是本文要解决的问题。从诊断工具、日志系统、健康监控到故障排查,本文将构建一套完整的 OpenClaw 运维知识体系,涵盖日常巡检、问题定位、性能优化和应急恢复的全流程。
一、诊断工具集:OpenClaw 自带的"听诊器"
OpenClaw 内置了一套完整的诊断工具集,是运维的第一道防线。遇到任何异常,第一反应不是重启、不是翻配置文件,而是运行诊断命令。
1.1 openclaw doctor:万能诊断仪
openclaw doctor 是 OpenClaw 的修复 + 迁移工具,它能修复过时的配置/状态,检查健康状况,并提供可操作的修复步骤。可以把它理解为 OpenClaw 的"体检中心"------一条命令就能全面扫描系统健康状态。
基础诊断:
bash
bash
openclaw doctor
这条命令会检测以下七类问题:
-
配置键错误:未知字段名、孤立的转录文件
-
认证问题:
gateway.auth.token管理状态异常 -
沙箱环境:启用了沙箱但 Docker 不可用
-
定时任务:
cron/jobs.json中的遗留任务冲突 -
内存搜索:缺失向量嵌入凭证
-
渠道状态:Telegram 用户名解析失败等
-
macOS 环境变量:
launchctl setenv设置的持久凭证导致鉴权异常
输出中带⚠️的是警告,带 ✗️ 的是阻断性错误,优先处理 ✗ 项。
自动修复:
bash
bash
openclaw doctor --repair # 执行可自动处理的修复
openclaw doctor --yes # 接受默认选项而不提示[reference:2]
openclaw doctor --repair --force # 激进修复(覆盖自定义配置)[reference:3]
Doctor 不仅能诊断,还能自动完成配置规范化、旧版配置键迁移、旧版磁盘状态迁移、状态完整性检查等。--repair 是 --fix 的别名,两者等价。
深度检查:
bash
bash
openclaw doctor --deep
执行更彻底的环境和配置扫描,适合在重大变更后进行全量检查。
1.2 openclaw status:实时状态概览
openclaw status 可以快速查看 gateway 和各渠道的当前运行状态。
bash
bash
openclaw status # Gateway 状态 + 渠道状态
openclaw gateway status # 仅 Gateway 运行时状态
openclaw channels status --probe # 渠道状态探测[reference:7]
1.3 openclaw dashboard:可视化状态面板
bash
bash
openclaw dashboard
执行后,终端会显示一个本地地址。打开浏览器访问 http://127.0.0.1:18789,即可看到 OpenClaw 的 Web UI 界面。仪表板提供实时的会话列表、工具调用记录、系统健康度等可视化信息。
1.4 其他实用诊断命令
| 命令 | 用途 |
|---|---|
openclaw sessions list |
查看活跃会话及其关联的 Agent |
openclaw pairing list |
查看待批准的配对请求 |
openclaw devices list |
查看已连接的设备列表 |
openclaw nodes status |
查看节点连接状态 |
openclaw models status |
查看模型连接状态 |
openclaw cron list |
查看定时任务列表 |
二、日志系统:故障排查的"黑匣子"
日志是 OpenClaw 运行的完整记录,也是排查问题的最核心工具。日志系统和诊断工具的区别在于:诊断工具给出"当前有什么问题"的结论,日志系统让你看到"问题发生的过程"。
2.1 日志存放位置
OpenClaw 在两个地方记录日志:文件日志(JSON 行)由 Gateway 网关写入,控制台输出显示在终端和控制 UI 中。
文件日志默认路径 :/tmp/openclaw/openclaw-YYYY-MM-DD.log,日期使用 Gateway 主机的本地时区。在原生安装中,也有部分版本使用 ~/.openclaw/logs/ 目录。
自定义日志路径 :在 ~/.openclaw/openclaw.json 中配置:
json
bash
{
"logging": {
"file": "/var/log/openclaw/openclaw.log"
}
}
2.2 日志级别与配置
OpenClaw 支持五个日志级别,从详细到精简依次为:
| 级别 | 说明 | 使用场景 |
|---|---|---|
trace |
最详细的追踪信息 | 开发调试、追踪数据流 |
debug |
调试信息,含请求/响应详情 | 排查具体功能异常 |
info |
常规运行信息(默认) | 日常监控 |
warn |
警告信息,不影响运行 | 关注潜在问题 |
error |
错误信息,功能受损 | 故障排查 |
配置日志级别:
bash
bash
openclaw config set logging.level debug # 文件日志级别
openclaw config set logging.consoleLevel info # 控制台级别
--verbose 参数仅影响控制台输出,不改变文件日志级别。文件日志使用 info 级别已足够,debug 和 trace 会产生大量输出,仅按需临时开启。
完整日志配置示例:
json
bash
{
"logging": {
"level": "info",
"file": "/tmp/openclaw/openclaw-YYYY-MM-DD.log",
"consoleLevel": "info",
"consoleStyle": "pretty",
"redactSensitive": "tools",
"redactPatterns": ["sk-.*"]
}
}
redactSensitive 默认值为 tools,可在敏感令牌输出到控制台前对其进行脱敏。脱敏仅影响控制台输出,不会改变文件日志。
2.3 查看日志
实时跟踪(最常用) :
bash
bash
openclaw logs --follow # 实时跟踪所有日志
openclaw logs --follow --level debug # 仅显示 debug 及以上
openclaw logs --follow --module gateway # 过滤特定模块[reference:18]
历史日志查询:
bash
bash
openclaw logs --tail 100 # 查看最近 100 条
openclaw logs --since "2026-04-01" --until "2026-04-05" # 按时间范围
openclaw logs --search "connection timeout" # 搜索关键词[reference:19]
渠道专用日志:
bash
bash
openclaw channels logs --channel whatsapp # 过滤渠道活动[reference:20]
输出格式控制:
-
TTY 会话:美观、彩色、结构化的日志行
-
--json:行分隔的 JSON(每行一个日志事件) -
--plain:强制纯文本 -
--no-color:禁用 ANSI 颜色
2.4 常见日志模式解读
以下模式有助于快速定位问题类型:
正常启动日志:
text
bash
[INFO] Gateway started on port 18789
[INFO] Model provider "bailian" connected successfully
[INFO] Channel "wechat" authenticated and listening
[INFO] Automation scheduler initialized with 3 tasks
模型连接失败:
text
bash
[ERROR] Model provider "openai" connection failed: 401 Unauthorized
[WARN] Falling back to secondary model provider "deepseek"
→ 解决方案:检查 API Key 是否正确,确认账户余额充足。
渠道认证失败:
text
bash
[ERROR] Channel "telegram" auth failed: 403 Forbidden - bot token invalid
→ 解决方案:重新生成 Bot Token 并更新配置。
上下文溢出:
text
bash
[WARN] Context overflow: 132000 tokens exceeds model limit 128000
[INFO] Auto-truncating context to fit model window
→ 解决方案:启用自动上下文裁剪,或切换到更大上下文窗口的模型。
执行审批受阻:
text
bash
[WARN] exec denied: command "/bin/rm" not in allowlist
→ 解决方案:将命令添加到执行审批允许列表,或临时批准。
三、健康检查与监控:确保服务"活着"
日志让你知道"发生了什么",健康检查让你知道"现在有没有事"。将健康检查端点纳入监控体系,是运维自动化的基础。
3.1 内置健康检查端点
OpenClaw Gateway 内置了 HTTP 健康检查端点:
bash
bash
# 存活探针(Liveness)------服务是否在运行
curl http://127.0.0.1:18789/healthz
# 就绪探针(Readiness)------服务是否准备好接收流量
curl http://127.0.0.1:18789/readyz
/healthz 返回 ok 表示服务正常运行;/readyz 在服务就绪时返回 200。这两个端点是专门为容器编排(Kubernetes)设计的。
⚠️ 注意 :健康检查端点仅绑定在回环地址(127.0.0.1),不能用于外部访问判断。如果你需要在远程服务器上检查,应在服务器本机执行或通过 SSH 调用。
3.2 核心监控指标体系
基础健康三要素:
-
服务进程是否在运行
-
API 端口(默认 18789)是否能连通
-
响应时间是否正常(建议阈值:2 秒以内)
资源使用监控:
-
CPU 使用率:持续超过 80% 需关注
-
内存使用率:超过 85% 需警惕
-
磁盘空间:剩余少于 20% 及时清理
任务执行监控:
-
任务成功率:正常应在 95% 以上
-
任务处理时间:关注平均值和 P99 值
-
队列堆积情况:待处理任务数量及趋势
3.3 社区监控工具:ClawMetry
ClawMetry 是一款专为 OpenClaw 量身定制的实时可视化监控系统,能将复杂的子智能体派生过程、Token 消耗、工具调用记录以及系统运行健康状况,转化为直观的实时数据看板。
核心能力:
-
深度子智能体追踪:展示每一步正在读取哪些文件、执行哪些指令、调用哪些工具
-
实时流程图:可视化展示渠道、网关、模型、工具和节点之间的连接关系
-
Token 与成本统计:输入/输出 Token、缓存命中率、响应延迟、每次调用成本
-
按会话、按模型、按工具进行细化成本拆解
-
后台任务状态、服务运行时间、磁盘使用率
安装 ClawMetry(一键安装):
bash
bash
curl -fsSL https://clawmetry.sh | bash
3.4 阿里云 SLS:企业级日志审计
阿里云日志服务(SLS)提供了 OpenClaw 的一键日志接入方案,配合内置审计大盘与观测大盘,实现开箱即用的安全审计与运维观测闭环。
接入方式:
-
在接入中心找到 OpenClaw 接入模板
-
一键完成日志采集配置
-
自动生成审计大盘和观测大盘
核心价值:
-
安全审计:追溯每一次敏感操作(文件访问、命令执行)
-
成本监控:按模型、按会话统计 Token 消耗
-
异常告警:配置阈值告警,问题发生时及时通知
-
长期存储:日志归档,满足合规要求
关于 SLS 的详细接入步骤和审计场景(敏感数据外泄、提示词注入、成本异常、高危操作),可参考本系列第 49 篇(企业版内容)。
3.5 Prometheus + Grafana 方案(自建)
对于有自建监控能力的团队,可以使用 Prometheus + Grafana 搭建 OpenClaw 监控面板。方案架构包括:
-
Prometheus 抓取指标数据
-
Grafana 可视化展示(可导入社区 Dashboard 模板)
-
Alertmanager 配置告警规则(服务宕机、API 限流、资源使用率超阈值)
3.6 OpenTelemetry 可观测性
OpenClaw 内置了 diagnostics-otel 插件,支持通过 OpenTelemetry Protocol (OTLP) 导出链路追踪、指标和日志。
启用 OTLP 追踪:
json
bash
{
"diagnostics": {
"otel": {
"enabled": true,
"endpoint": "http://localhost:4318/v1/traces",
"protocol": "http/protobuf"
}
}
}
配置完成后,可以在 Jaeger、SigNoz 或阿里云应用实时监控服务(ARMS)中查看完整的 AI Agent 调用链路,包括模型推理耗时、工具调用详情和子智能体执行过程。
四、故障排查实战指南
4.1 端口占用:EADDRINUSE
现象 :Gateway 启动失败,错误信息 Error: listen EADDRINUSE: address already in use :::18789。
原因:默认端口 18789 被其他进程占用,可能是 OpenClaw 残留进程、第三方软件或系统服务。
排查步骤:
bash
bash
# macOS / Linux
lsof -i :18789
# 或
netstat -tulpn | grep 18789
# Windows
netstat -ano | findstr 18789
解决方案:
-
终止占用进程 (非系统关键进程):
kill -9 <PID>(macOS/Linux)或taskkill /PID <PID> /F(Windows) -
更换端口 :在
openclaw.json中修改gateway.port,或启动时指定openclaw gateway --port <新端口>
详细操作可参考本系列第 9 篇的 Docker 部署章节中关于端口冲突的完整排查流程。
4.2 配置错误导致无法启动
现象 :openclaw doctor 显示配置校验错误,Gateway 无法启动。
优先使用诊断工具 :运行 openclaw doctor 自动识别问题。
配置恢复路径:
| 恢复路径 | 适用场景 | 操作 |
|---|---|---|
| 删错误字段(推荐首选) | 确定哪块配置出错 | 删除对应配置块 → 保存 → openclaw doctor |
| 重新引导 | 不确定哪里出问题 | openclaw onboard 交互式重新配置(先备份) |
| 手动重置 | 完全无法恢复 | 替换为最小有效配置(仅保留 gateway.auth) |
热重载提示:以下配置修改需要重启 Gateway:
-
Gateway 端口/绑定模式
-
Gateway 认证 Token
-
插件/技能配置
渠道配置、Agent 配置、模型配置支持热重载,保存即生效。
4.3 API 限流(Rate Limit)
现象 :API rate limit reached 错误。
常见原因:
-
使用免费/低配额 API Key
-
Coding Plan 配置错误:请求被路由到通用 API 而非专属通道
-
任务过于密集
解决方案:
-
升级 API 套餐或切换模型
-
检查 Coding Plan 配置是否正确
-
调整 Cron 任务频率,增加间隔
-
配置模型降级(fallback)
4.4 渠道无响应
现象:Bot 在线,但发送消息无回复。
排查步骤:
bash
bash
openclaw status # 检查 Gateway 状态
openclaw gateway status
openclaw channels status --probe # 渠道状态探测
openclaw logs --follow --module channel --level trace # 追踪消息流
消息处理流程:收到消息 → 通道适配器解析 → Agent 处理 → 模型调用 → 响应格式化 → 通道发送。每个环节的耗时和状态都会记录在 trace 级别日志中,可据此定位瓶颈。
常见原因及修复:
-
Token 失效 → 重新生成并更新配置
-
配对未批准 →
openclaw pairing list+openclaw pairing approve -
群组中需 @ 提及 → 检查
requireMention配置 -
渠道被平台风控 → 降低消息频率
4.5 节点工具执行失败
现象:节点在状态中可见,但节点工具运行失败。
排查命令:
bash
bash
openclaw nodes status
openclaw nodes describe --node <idOrNameOrIp>
openclaw approvals get --node <idOrNameOrIp>
常见节点错误码:
| 错误码 | 含义 | 解决方案 |
|---|---|---|
NODE_BACKGROUND_UNAVAILABLE |
应用已后台运行 | 将节点应用切换到前台 |
*_PERMISSION_REQUIRED |
系统权限缺失 | 在系统设置中授予权限 |
SYSTEM_RUN_DENIED: approval required |
需要显式批准 | openclaw approvals allowlist add --node <id> <命令> |
SYSTEM_RUN_DENIED: allowlist miss |
命令被白名单模式阻止 | 将命令添加到允许列表,或通过询问流程批准 |
4.6 性能问题:响应慢/Token 消耗高
排查思路:
-
查看模型响应时间 :
openclaw models stats --last 1h -
启用模型调试 (排查完毕后务必关闭):
openclaw config set models.debug true -
检查上下文大小 :
openclaw logs --search "context overflow" -
分析日志级别 :
INFO级别日志过多可能影响性能,生产环境可适当调高日志级别
优化措施:
-
缩短
maxTokens限制 -
降低
temperature减少输出长度 -
启用记忆系统的时间衰减,避免加载过多旧信息
-
使用更便宜的模型处理非关键任务
五、运维 SOP:从发现问题到解决问题
5.1 日常巡检清单
建议每天执行以下检查:
bash
bash
# 1. 健康检查
curl http://127.0.0.1:18789/healthz
# 2. 诊断扫描
openclaw doctor
# 3. 状态检查
openclaw status
# 4. 查看最近错误日志
openclaw logs --tail 50 --level error
5.2 故障应急响应流程
-
第一响应 :
openclaw doctor自动诊断 -
查看日志 :
openclaw logs --follow --level error -
检查状态 :
openclaw status -
问题定位:根据日志和诊断输出定位根因
-
执行修复:参考本文第四节的对应方案
-
验证恢复 :
openclaw doctor+ 功能测试 -
复盘记录:记录原因和解决方案,优化监控
5.3 生产环境配置建议
日志管理:
-
按天切割、按周压缩、按月归档
-
生产环境使用
info级别,避免日志膨胀 -
关键场景(API 调用、敏感操作)记录审计日志
监控配置:
-
健康检查:每 30 秒一次
-
资源监控:CPU/内存/磁盘,阈值告警
-
任务监控:成功率、处理时间 P99
-
API 限流监控:提前预警
告警配置:
-
服务宕机:立即告警(电话/短信)
-
任务失败率 > 10%:5 分钟内告警
-
API 限流接近阈值:提前 1 天预警
-
磁盘空间 < 20%:每日报告
六、总结
| 场景 | 核心工具 | 关键命令 |
|---|---|---|
| 日常健康检查 | openclaw doctor | openclaw doctor |
| 实时日志查看 | openclaw logs | openclaw logs --follow |
| 状态快速查看 | openclaw status | openclaw status |
| 历史日志查询 | openclaw logs | openclaw logs --tail 100 |
| 健康检查 | HTTP 端点 | curl /healthz |
| 可视化监控 | ClawMetry / SLS | 按需安装 |
| 配置修复 | openclaw doctor | openclaw doctor --repair |
| 渠道排查 | openclaw channels | openclaw channels status --probe |
| 节点排查 | openclaw nodes | openclaw nodes describe |
| 模型调试 | models.debug | openclaw config set models.debug true |
掌握以上运维技能,你的 OpenClaw 将从"能跑起来"升级为"可靠地跑下去"。
七、下一步做什么?
-
第 30 篇:OpenClaw 综合实战------从零搭建你的 7×24 小时 AI 数字员工
💡 最终提醒:运维的价值不在"出了多少工单",而在"让工单不出现"。把本文的日常巡检清单放到你的运维日历里,每周跑一遍。花 5 分钟检查,省下的可能是半夜被叫醒的时间。
