OpenClaw 运维完全手册|日志分析、实时监控与故障排查指南

本系列第二十八篇:从"能用"到"可靠"------建立完整的 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 级别已足够,debugtrace 会产生大量输出,仅按需临时开启。

完整日志配置示例:

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 的一键日志接入方案,配合内置审计大盘与观测大盘,实现开箱即用的安全审计与运维观测闭环。

接入方式

  1. 登录阿里云日志服务控制台

  2. 在接入中心找到 OpenClaw 接入模板

  3. 一键完成日志采集配置

  4. 自动生成审计大盘和观测大盘

核心价值

  • 安全审计:追溯每一次敏感操作(文件访问、命令执行)

  • 成本监控:按模型、按会话统计 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 消耗高

排查思路

  1. 查看模型响应时间openclaw models stats --last 1h

  2. 启用模型调试 (排查完毕后务必关闭):openclaw config set models.debug true

  3. 检查上下文大小openclaw logs --search "context overflow"

  4. 分析日志级别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 故障应急响应流程
  1. 第一响应openclaw doctor 自动诊断

  2. 查看日志openclaw logs --follow --level error

  3. 检查状态openclaw status

  4. 问题定位:根据日志和诊断输出定位根因

  5. 执行修复:参考本文第四节的对应方案

  6. 验证恢复openclaw doctor + 功能测试

  7. 复盘记录:记录原因和解决方案,优化监控

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 将从"能跑起来"升级为"可靠地跑下去"。

七、下一步做什么?

💡 最终提醒:运维的价值不在"出了多少工单",而在"让工单不出现"。把本文的日常巡检清单放到你的运维日历里,每周跑一遍。花 5 分钟检查,省下的可能是半夜被叫醒的时间。

相关推荐
Lentou2 小时前
nginx反向代理
运维·nginx
刘~浪地球2 小时前
API 安全设计最佳实践
运维·网络·安全
网络安全许木2 小时前
自学渗透测试第20天(防火墙基础与规则配置)
运维·服务器·网络·网络安全·渗透测试
亚空间仓鼠2 小时前
Docker 容器技术入门与实践 (二):Dockerfile文件
运维·docker·容器
遇见火星2 小时前
linux设置开启启动服务
linux·运维·服务器·nginx
亚空间仓鼠2 小时前
Docker 容器技术入门与实践 (一):命令与镜像、容器管理
运维·docker·容器
.柒宇.2 小时前
Python 运维实战:psutil 监控系统资源 + paramiko 远程管理服务器
运维·服务器·python
翼龙云_cloud3 小时前
腾讯云代理商:云上 OpenClaw5 分钟接入 Slack 指南 AI 助手一键部署实战
服务器·人工智能·云计算·腾讯云·openclaw
东北甜妹3 小时前
Docker 多阶段构建
运维·docker·容器