AI 自動化 2026年4月13日

2026 クラウド Mac:OpenClaw doctor をデータプレーンとして扱い、launchd 修正まで一気通貫させる

MacLogin AI 自動化チーム 2026年4月13日 約 12 分

「SSH では CLI が動くのに、深夜にチャットが沈む」という揺れは、ヘッドレス Mac mini リースで OpenClaw を動かすチームでは珍しくありません。本ランブックの要点は、openclaw doctor をマーケ文面ではなく一次データとして扱い、警告行を launchd plist、Node 実体、リスニングポート、ai.openclaw.gateway を所有するユーザー文脈での外向き DNS にすぐ相関させることです。 症状表、数値チェックポイント付き 8 ステップ、偽陽性の見分け方、変更管理向けフィールド、MacLogin の各リージョン運用に合わせた FAQ をまとめました。

環境変数と LaunchAgent の重ね方は OpenClaw 環境変数+launchd、デーモン復旧は ゲートウェイ障害切り分け、SSH セッション断は keepalive ガイド、状態ディレクトリは バックアップ引き継ぎ を参照してください。接続一般は ヘルプ、ステージング追加は 料金、TCC 阻害には VNC を併用します。

クラウド環境では、ローカルヘルスチェックがループバックだけを見て緑になり、外向き TLS が壊れているケースが往々にして起きます。doctor はその罠を減らしますがゼロにはできないため、チャネル所有者・SRE・セキュリティの三者で「doctor 後に必ず叩く第二確認」を Runbook に固定しておくと、夜間オンコールの迷子が減ります。

ヘッドレス環境で doctor を最優先する理由

  • リース間コピー:LaunchAgent を東京からシンガポールへ複製しても doctor を再実行しないと、Node パスずれが初回再起動まで隠れる。
  • トークン轮换:四半期ごとの API キー更新でも、doctor は「ファイルが読める」ことしか見ないことがある。
  • 監査証跡:インシデント前の健全性を示すには、タイムスタンプ付き doctor 出力がスクリーンショットより再現性が高い。

ログを tail する前の症状表

ユーザー視点の症状最初に読む doctor 節二次確認MacLogin で多い原因
launchd exit 127Runtime / Nodewhich node と plist の ProgramArgumentsOS アップデート後の Homebrew プレフィックス移動
エッジ 502Ports / listenersループバックの lsoflocalhost ポートの設定ドリフト
LLM タイムアウトNetwork / DNS同一ユーザの dig共有リースの外向き制限
ツール拒否Permissions / workspaceGUI で一度 TCC を確認初回同意が SSH だけでは完了していない

チケットに貼れる 8 ステップ

  1. シェル整合: root ではなく LaunchAgent 所有者で SSH。OPENCLAW_STATE_DIR が iCloud 外か確認(状態ディレクトリ)。
  2. キャプチャ: openclaw doctor > ~/tmp/doctor-$(date +%Y%m%d-%H%M).txt
  3. 版固定: openclaw --version と Node semver を同ファイルへ。
  4. launchctl: launchctl print gui/$(id -u)/ai.openclaw.gateway
  5. ポート突合: doctor のヒントと実 TCP が ±1 を超えてズレたら設定が古い。
  6. チャネルプローブ: 本番前に最安チャネルで合成 ping。
  7. タイムボックス: 25 分で進展なければ doctor+launchctl を添えてエスカレーション。
  8. 事後確認: doctor 再実行で赤行ゼロかリスク承認を残す。
メトリクス: doctor 全緑スナップショット間隔の平均を追う。30 日超未取得ならドリフト前提で棚卸しする。

doctor 行と plist フィールド

doctor ヒント確認する launchd フィールド健全パターン
Cannot find nodeProgramArguments[0]対話シェルと同じ絶対パス
State dir not writableWorkingDirectory700 のリポジトリルート
Port in use(なし)プロセス側重複ゲートウェイ停止、ラボのみ +1

偽の緑と赤旗

ヘルスチェックがループバックのみを見ると doctor が静かでも TLS 境界で失敗します。外向き TLS 失敗は P1 扱いにしてください。

警告: 生きた API キーをチャットに貼らない。末尾 4 桁だけチケットに残し、本体はシークレット管理へ。
  • 赤旗: doctor 緑なのに CPU>85%20 分続くのにトラフィックなし→暴走ツールループ疑い。
  • 赤旗: 空き容量 12GB 未満警告→キャッシュ破損リスク。

監査向け最小パケット

成果物最低限の中身保持目安
doctor.txtstdout 全文、ホスト名、リージョンコード90 日
launchctl print終了コード、時刻、uid90 日
openclaw.json diff秘匿化済みシークレット180 日

FAQ

統合テストの代替か? いいえ。各チャネルに合成ペイロードを送るスモークは継続してください。

CI から doctor を? はい。ステージングリースのパイプラインで赤行を非ゼロ終了に。

MacLogin が代行? いいえ。客運用のまま、本稿は自己診断の指針です。

Mac mini M4 が向く理由

arm64 と launchd の前提がドキュメントと一致し、doctor をローカル推論プローブと並走してもゲートウェイが飢えにくいです。Neural Engine は将来の端末検証に余白を残します。東京やシンガポールなどユーザー近傍で doctor を回すと WAN 起因の誤判定が減ります。

CPU/ディスク圧が出たら 料金 で容量追加、接続手順は ヘルプ を参照してください。

doctor 全緑のステージングリースを用意

OpenClaw を上げる前に本番ラベルをミラーする。