OpenClaw Gateway 裝完只是起點;生產裡真正消耗值班時間的是健康檢查失真、日誌找不到、升級後設定漂移。本文寫給已跟完 Linux systemd + Tunnel、Docker Compose 或 三端安裝 的團隊,補齊最小觀測面、日誌分流、升級回滾與症狀對照表;需要路由策略時再接 modelRouting 篇。
安裝教學驗證的是 happy path;生產環境要面對的是程序假活、連接埠衝突、權限變更、下游模型逾時等長尾問題。下面六條是把 on-call 從「猜」變成「查」的入口清單。
健康檢查過寬:只判斷程序存在,不驗證 Gateway 真在處理路由,導致流量切入後才發現半殘。
日誌分散:systemd、容器、應用程式標準輸出與反向代理各寫一處,除錯時拼不出時間線。
升級無基線:不記得上一版映像 digest 或 npm 全域版本,回滾只能「重裝試試」。
設定與金鑰混放:openclaw.json 與環境變數注入不同步,表現為間歇性 401 或路由靜默失敗。
觀測與變更不同步:改了監聽位址或 Tunnel 目標,卻未更新監控探測路徑。
把 Gateway 當萬能執行器:把重負載 Xcode 工作硬塞在同一台小 VPS,CPU 打滿後誤判為「模型慢」。
若你命中兩條以上,先把最小觀測面補齊,再談功能迭代;否則每次發布都會在同一類故障上重複交學費。
用一張表把職責切開,避免「裝得上」和「穩得住」混在同一輪審查裡。
| 主題 | 安裝/常駐篇(systemd · Docker · 三端) | 本文(生產觀測與變更) |
|---|---|---|
| 程序與暴露面 | unit/Compose、回環監聽、Tunnel 或防火牆策略 | 存活探針、連接埠衝突巡檢、變更後探測路徑回歸 |
| 設定模型 | 首次寫入 openclaw.json、目錄權限 | diff 審查、備份、灰度與回滾順序 |
| 日誌 | 先能落盤或被 journal/docker 收集 | 欄位意義、關聯 ID、常見錯誤模式歸檔 |
| 升級 | 提供一條可複製的升級命令或映像拉取路徑 | 記錄 digest/版本號、備份點、回滾驗證清單 |
| 模型路由 | 可選提及 | 深度策略見 modelRouting 專文 |
維運的可複製性來自「同一套檢查命令 + 同一套回滾順序」,而不是負責人的記憶力。
下列順序相容 systemd 與 Docker:先確認事實層(程序/連接埠/健康端點),再進入解釋層(日誌與下游)。具體命令隨發行版略有差異,但檢查點應保持一致。
確認主程序:systemd 用 systemctl status;Docker 用 docker compose ps,關注重啟計數與結束碼。
核對監聽:ss -lntp 或容器連接埠對應,確保與 Tunnel/反代目標一致。
健康檢查:對文件或自建探針路徑做 HTTP 探測,並區分「程序起」與「路由可用」。
拉取最近日誌:journalctl -u 或 docker compose logs --tail=200,先鎖定時間窗再全文搜尋。
驗證下游模型:用最小請求夾具排除「Gateway 正常但上游 API 異常」。
輸出變更紀錄:每次發布寫清版本號/digest、設定 diff、探測截圖,方便下一輪 on-call。
# 範例:快速巡檢(依你的 unit/容器名替換) systemctl status openclaw-gateway.service --no-pager || true ss -lntp | grep -E '18789|LISTEN' || true # Docker 路徑(範例) # docker compose -f /opt/openclaw/docker-compose.yml ps # docker compose -f /opt/openclaw/docker-compose.yml logs --tail=200 gateway
提示:若使用 Cloudflare Tunnel,請在變更後同時驗證公網探測與本機回環探測,避免「內網通、邊緣快取舊路由」的誤判。
可回滾的升級需要三件事:發布前快照、發布中只動一條變更向量、發布後按同一探針集合驗收。Docker 路徑優先用固定 digest 或私有映像倉標籤策略;裸機/npm 路徑鎖定全域套件版本號與 lockfile(若適用)。
灰度思路:先在單台預發或低流量副本驗證,再滾動到生產;若 Gateway 後掛遠端執行節點,記得分層發布——先確認控制面,再擴容執行面。
注意:不要在未備份 openclaw.json 與環境注入的情況下並行嘗試「順手改路由」;生產裡最常見的不可用來自設定半提交狀態。
下列數字為工程經驗量級,用於審查對齊;實際逾時與配額以供應商與合約為準。
| 症狀 | 優先懷疑 | 處理方向 |
|---|---|---|
| 啟動即退出 | 設定 JSON 語法、環境變數缺失、連接埠占用 | 用前景模式重現一次,對照安裝篇檢查點 |
| 間歇 401 | 金鑰輪換不同步、多個設定檔路徑 | 統一注入源,清理歷史 shell profile 污染 |
| CPU 長期打滿 | 執行負載堆在 Gateway 同機 | 把重任務遷到專用執行節點或遠端 Mac |
| 延遲飆升 | 下游模型限速、DNS、TLS 握手 | 分層擷取/日誌,先隔離網路再調模型 |
把重 macOS 建置、簽章與 GUI 依賴工作硬塞在與 Gateway 同一台小型 Linux VPS 上,短期省事,但會同時拖垮控制面穩定性與除錯信噪比;純本地筆電又難做到 7×24 與可稽核隔離。對需要穩定 iOS CI、自動化 Agent 與可合約化算力的團隊,更穩妥的路徑是:Gateway 留在通用 VPS,把 macOS 執行層放到獨佔遠端 Mac 節點。綜合維運邊界與擴展彈性,NodeMini 的 Mac Mini 雲端租賃適合承接這類執行層:按地區與磁碟選節點,與 OpenClaw 控制面分層部署,值班只盯清晰的觀測面。
可在部落格列表使用 OpenClaw 分類篩選,並依 systemd → Docker → 觀測 → modelRouting 的順序閱讀。
請查閱 說明中心,再回到本文健康檢查與日誌章節做交叉驗證。