Gateway
ヘルスチェック
推測せずにチャンネル接続を確認するための簡潔なガイドです。
クイックチェック
openclaw status- ローカル概要:Gateway の到達可能性/モード、更新のヒント、リンク済みチャンネル認証の経過時間、セッションと最近のアクティビティ。openclaw status --all- 完全なローカル診断(読み取り専用、カラー表示、デバッグ用に安全に貼り付け可能)。openclaw status --deep- 実行中の Gateway にライブプローブ(probe:trueを指定したhealth)を要求します。対応している場合は、アカウントごとのチャンネルプローブも含まれます。openclaw status --usage- モデルプロバイダーの使用量/クォータのスナップショットを表示します。openclaw health- 実行中の Gateway にヘルススナップショットを要求します(WS のみ。CLI からチャンネルソケットへ直接接続しません)。openclaw health --verbose(別名--debug)- ライブヘルスプローブを強制し、Gateway 接続の詳細を出力します。openclaw health --json- 機械可読なヘルススナップショットを出力します。- 任意のチャンネルで
/statusを単独のチャットコマンドとして送信すると、エージェントを呼び出さずにステータス応答を取得できます。 - ログ:
/tmp/openclaw/openclaw-*.logを追跡し、web-heartbeat、web-reconnect、web-auto-reply、web-inboundでフィルタリングします。
Discord やその他のチャットプロバイダーでは、セッション行はソケットの稼働状態を示すものではありません。
openclaw sessions、Gateway の sessions.list、エージェントの sessions_list ツールは、
保存された会話状態を読み取ります。プロバイダーが再接続すると、新しいセッション行が作成される前でも、
チャンネルステータスが正常と表示される場合があります。ライブ接続の確認には、上記のチャンネルステータスと
ヘルスコマンドを使用してください。
詳細診断
- ディスク上の認証情報:
ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json(mtime は最近の時刻である必要があります)。 - セッションストア:
ls -l ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite。件数と最近の受信者はstatusで表示されます。 - 再リンク手順:ログにステータスコード 409-515 または
loggedOutが表示された場合は、openclaw channels logout && openclaw channels login --verboseを実行します。QR ログインフローは、ペアリング後にステータス 515 が発生すると一度だけ自動再起動します。 - 診断はデフォルトで有効です(
diagnostics.enabled: falseで無効化されます)。メモリイベントには RSS/ヒープのバイト数と、しきい値/増加圧力が記録されます。重大なメモリ圧力は Gateway ロガーを通じて記録され、diagnostics.memoryPressureSnapshot: trueが設定されている場合は、OOM 発生前の安定性バンドル(V8 ヒープ統計、利用可能な場合は Linux cgroup カウンター、アクティブなリソース数、秘匿化された相対パスで示される最大のセッション/トランスクリプトファイル)も書き込まれます。稼働状態の警告には、プロセスは実行中だが飽和している場合のイベントループ遅延/使用率、CPU コア比率、アクティブ/待機中/キュー内のセッション数が記録されます。過大なペイロードのイベントには、拒否/切り詰め/分割された対象と、そのサイズおよび制限が記録されますが、メッセージ本文、添付ファイルの内容、Webhook 本文、生のリクエスト/レスポンス本文、トークン、Cookie、シークレット値は決して記録されません。 - 同じ Heartbeat がサイズ制限付きの安定性レコーダーを駆動します:
openclaw gateway stability(またはdiagnostics.stabilityGateway RPC)。致命的な Gateway 終了、シャットダウンのタイムアウト、再起動時の起動失敗、および(diagnostics.memoryPressureSnapshot: trueの場合は)重大なメモリ圧力が発生すると、最新のスナップショットが~/.openclaw/logs/stability/に保存されます。最新のバンドルはopenclaw gateway stability --bundle latestで確認します。 - バグ報告では、
openclaw gateway diagnostics exportを実行し、生成された zip を添付してください。zip には Markdown の概要、最新の安定性バンドル、サニタイズ済みログメタデータ、サニタイズ済み Gateway ステータス/ヘルススナップショット、設定の構造が含まれます。チャット本文、Webhook 本文、ツール出力、認証情報、Cookie、アカウント/メッセージ識別子、シークレット値は省略または秘匿化されます。診断エクスポートを参照してください。
ヘルスモニター設定
gateway.channelHealthCheckMinutes:Gateway がチャンネルのヘルスを確認する間隔。デフォルト:5。グローバルにヘルスモニターによる再起動を無効化するには0に設定します。gateway.channelStaleEventThresholdMinutes:接続済みチャンネルがアイドル状態のままでいられる時間。この時間を超えると、ヘルスモニターはそのチャンネルを停滞状態とみなし、再起動します。デフォルト:30。gateway.channelHealthCheckMinutes以上に設定してください。gateway.channelMaxRestartsPerHour:チャンネル/アカウントごとのヘルスモニターによる再起動回数について、ローリング方式で適用される 1 時間あたりの上限。デフォルト:10。channels.<provider>.healthMonitor.enabled:グローバル監視を有効にしたまま、特定のチャンネルについてヘルスモニターによる再起動を無効化します。channels.<provider>.accounts.<accountId>.healthMonitor.enabled:チャンネルレベルの設定より優先される、複数アカウント向けのオーバーライド。- これらのチャンネルごとのオーバーライドは、現在この機能を公開している組み込みチャンネル(Discord、Google Chat、iMessage、IRC、Microsoft Teams、Signal、Slack、Telegram、WhatsApp)に適用されます。
稼働時間の監視
外部の稼働時間監視サービスでは、/v1/chat/completions ではなく専用の /health エンドポイントを使用してください。
- 使用するもの:
GET /health- 即時応答、セッションは作成されず、LLM 呼び出しも行われず、{"ok":true,"status":"live"}を返します - 使用しないもの: ヘルスチェックでの
/v1/chat/completions- 各リクエストで、スキルスナップショット、コンテキスト構築、LLM 呼び出しを伴う完全なエージェントセッションが作成されます
x-openclaw-session-key ヘッダーも user フィールドも指定されていない場合、/v1/chat/completions はリクエストごとに新しいランダムなセッションを生成します。15 分ごとに ping する監視サービスでは、1 日あたり約 96 個のセッションが作成され、それぞれ 4-22KB を消費します。時間の経過とともにセッションストアが肥大化し、コンテキストウィンドウのオーバーフローにつながる可能性があります。
監視サービスの設定例
- BetterStack: ヘルスチェック URL を
https://<your-gateway-host>:<port>/healthに設定します - UptimeRobot: URL
https://<your-gateway-host>:<port>/healthを指定して新しい HTTP モニターを追加します - 汎用: Gateway が正常な場合、
/healthへの任意の HTTP GET は{"ok":true}とともに 200 を返します
問題が発生した場合
logged outまたはステータス 409-515 ->openclaw channels logoutを実行してからopenclaw channels loginを実行し、再リンクします。- Gateway に到達できない -> 起動します:
openclaw gateway --port 18789(ポートが使用中の場合は--forceを使用します)。 - 受信メッセージがない -> リンク済みの電話がオンラインであり、送信者が許可されていることを確認します(
channels.whatsapp.allowFrom)。グループチャットでは、許可リストとメンションルールが一致していることを確認します(channels.whatsapp.groups、agents.list[].groupChat.mentionPatterns)。
専用の「health」コマンド
openclaw health は、実行中の Gateway にヘルススナップショットを要求します(CLI から
チャンネルソケットへ直接接続しません)。デフォルトでは、最新のキャッシュ済み Gateway スナップショットを返し、
Gateway はそのキャッシュをバックグラウンドで更新します。--verbose を指定すると、代わりにライブプローブを強制します。
このコマンドは、利用可能な場合はリンク済み認証情報/認証の経過時間、チャンネルごとのプローブ概要、
セッションストアの概要、プローブの所要時間を報告します。Gateway に到達できない場合、またはプローブが
失敗/タイムアウトした場合は、0 以外の終了コードで終了します。
オプション:
--json:機械可読な JSON 出力--timeout <ms>:デフォルトの 10s プローブタイムアウトを上書き--verbose:ライブプローブを強制し、Gateway 接続の詳細を出力--debug:--verboseの別名
ヘルススナップショットには、ok(真偽値)、ts(タイムスタンプ)、durationMs(プローブ時間)、チャンネルごとのステータス、エージェントの可用性、セッションストアの概要が含まれます。