request_id、健康探针不测鉴权。含观测矩阵、排障顺序、Webhook 占位与 FAQ。延展 嵌入与 RAG 预拉取、多端点路由与 CI 摘要、网关加固;博客列表、首页免登录。🔑📊
2026 OpenClaw 可观测实战:远程 Mac 网关 Model Auth 与工具调用日志排障(串联 CI 摘要) | MacPull独立可用的 Meta 描述:
Model Auth 卡与工具结构化日志、grep 关键字、健康探针合并、失败摘要 JSON 占位与二四八秒退避;与远程 Mac CI 联动及常见 401、限流、工具超时 FAQ。
前置条件
统一 Node.js 22 LTS 及以上并与发布说明对齐;完成 openclaw doctor,需要时用 openclaw onboard --install-daemon。提供商密钥不入库、文件 chmod 600;HTTPS 证书与仪表盘域名、模型表里的 Host 一致。预留JSON 行级别网关日志磁盘,放行 CI 出站 Webhook 白名单。
| 观测口径 | 能证明什么 | 典型踩坑 |
|---|---|---|
| 仅 HTTP 200 | 服务进程在监听 | 无法区分模型凭据与工具策略是否真可用 |
| Model Auth 卡 | 端点凭据范围与软过期 | 与 别名/路由表未同时更新会「绿仍 404」 |
| 工具摘要行 | 工具名、耗时、退出类 | 脱敏过狠时只剩 request_id,需回日志仓拉全量 |
逐项排障步骤
自上而下;定位根因后可提前结束。
1)对齐 Model Auth 卡与路由表:在仪表盘核对每张上游卡为真实凭据范围而非仅「可达」;对照 多路由表里 chat/嵌入别名,Git 改名后必须热更新网关配置。
2)日志关键字(限幅 grep):鉴权与额度:model_auth_probe、invalid_api_key、insufficient_quota;工具与策略:tool_invocation、tool_result、permission_denied;传输:rate_limit、retry_after、upstream_timeout。行间 request_id 对齐 CI 时间。
3)合并健康探针:避免三套 launchd 任务;单脚本串联 /health 或 openclaw gateway status --json 与最小已鉴权推理探针,任一失败即非零退出;对齐 LaunchAgent 健康模式与网关 UID。
4)工具日志深度:保留单行摘要(工具名、耗时、退出类),正文脱敏;确认升级后仍有 tool_result 摘要而非只剩原始大块传输。
5)同环境复现:用与守护进程相同用户 SSH 重放失败工具命令,核对 HOME、钥匙串、沙箱差异;常见「人工 OK、自动化拒绝」源于会话不一致。
与远程 Mac CI 联动示例
鉴权降级或工具严重错误时向白名单 POST JSON,外层 2 / 4 / 8 秒退避;对齐 Azure DevOps Webhook 等文。流水线替换尖括号占位。
- 摘要长度:生产默认末二十行,staging 可放宽;必带
request_id。 - HTTP 客户端:
curl --max-time收紧,避免 Webhook 重试占满 Runner。 - 恢复联动:环境类问题指向 失败恢复与重试 以免重复造轮子。
常见报错 FAQ
Model Auth 刚部署后变黄?
多为时钟漂移、配置分片热载或 canary 令牌只被部分进程加载。整体重启网关、校准 NTP,确认仪表盘与 worker 读同一配置路径。
手工执行工具成功,CI 内失败?
比对 SSH agent、钥匙串解锁、完全磁盘访问权限;把长密钥放在专用户可读文件,避免在 CI 明文 export。
构建摘要里错误被截断是丢数据吗?
有意为之以防泄密;用 request_id 回日志系统拉全量结构化条目。