AI / 自動化 2026年4月23日

2026 OpenClaw ログ:JSONL 診断、ローテーション、相関—レンタル ProxyMac Mac mini

ProxyMac エンジニアリングチーム 2026年4月23日 約13分で読めます

香港・日本・韓国・シンガポール・米国ProxyMac Mac miniOpenClaw を回すチームは、しばしば 可観測性より先に機能を出荷し、Webhook の再実行が失敗した週末にコンソールのノイズを diff することになります。良いログは「文字を増やす」ことではなく、安定したフィールド名を持つ構造化 JSON Lines、インシデント再生のため最低14日の保持、APFS 上で500ms 未満のディスク fsync 予算、HTTP ゲートウェイのリクエストをデーモン判断に縫い合わせる相関 IDです。本稿では、なぜ自動化向きに JSONL が綺麗なコンソールモードに勝るか、三つのシンク戦略を表で対比し、M4 ディスクスループットに結びついたローテーション計算、受信 Webhook からエージェント追跡へ ID を伝播する方法、stdout/stderr パス・スロットル・クラッシュ時のみコアダンプ無効など6項目の LaunchAgent チェックリスト、そして ヘルスプローブGitOps 設定デプロイのトリアージへのリンクをまとめ、ログを発掘作業ではなく証拠にします。

まず ヘルプセンターのオンボーディングから入り、ログ量が経理を驚かさないよう 料金ティアでストレージを見積もってください。障害時に詳細なプロバイダ追跡を有効にするほど容量は跳ねます。

ログはプロダクト機能であり、事後デバッグの余興ではない

監査人が自律エージェントが顧客データにどうアクセスしたかを問うとき、Terminal.app のスクリーンショットは証拠になりません。trace_idactortoollatency_ms を含む耐久 JSONL なら、SIEM が既にインデックスしている行と結合できます。Apple Silicon ミニではサーマル面のログも重要です。JSON を毎時 80MB 追記し続けると SSD コントローラが忙しくなり、SQLite 裏のエージェント記憶から IOPS を奪う—ローテーションは見た目の話ではありません。

  • 金融 APIは追記専用の不変証跡を求めます—JSONL を週次でオブジェクトストレージへコピーする「WORM ライト」として扱います。
  • モデルベンダー紛争では、どの API キーがどのエンドポイントを叩いたかをタイムスタンプで示す必要があり、ベンダーダッシュボードだけに頼れません。
  • クロスリージョンフェイルオーバー試験は、リクエストごとにリージョンタグがログに載っているときだけ意味を持ちます—プロバイダフェイルオーバー稿を参照してください。

JSONL ローリング診断 vs コンソール vs リモート SIEM

シンク最適用途カーディナリティリスク運用コスト
APFS 上のローリング JSONLエージェントのツール追跡、再生中—スキーマ規律が要る低—ローカル jq
Unified Logging の述語macOS サブシステムのクラッシュ高—プライバシー編集中—Console の熟練
リモート syslog / HTTP シッパー中央 SOC高—ネットワーク分断高—鍵と TLS
具体的予算:中程度の冗長度で 2 週間分 JSONL を置くため、混雑したゲートウェイあたり 2〜6GB の APFS を見込みます。ワーカー並列が8を超えたら早めにトリムしてください。

セキュリティアンケートに耐えるローテーション数値

日次ローテーションとローカルで圧縮世代14本保持を基本にし、コンプライアンスが90日遡及を求めるなら週次で不変オブジェクトストレージへ送ります。利用可能なら zstd で圧縮し、ローテーション窓の M4 CPU を15%未満に抑えます。ファイル寿命チェックを 合成プローブと組み合わせ、ディスク満杯が launchd が書き込み拒否する前に赤メトリクスになるようにします。

#!/bin/bash # 例:エージェント起動前の容量ガード MAX_GB=6 USED=$(du -sg ~/Library/Logs/OpenClaw | awk '{print $1}') if [ "$USED" -ge "$MAX_GB" ]; then echo "log_quota_exceeded" >&2; exit 3; fi

Webhook 相関:ゲートウェイログをエージェント JSONL に通す

受信 Webhook ガイドに従い TLS を localhost で終端し、着信 X-Request-Id(またはヒットごとの UUID4)を OpenClaw のタスクコンテキストへ伝播します。JSONL ライターは同一 ID で判断 1 行を出し、サポートが nginx 相当・ゲートウェイ・エージェントのファイルを 1 本の grep で辿れます。再試行時はルート ID を変えず接尾辞で連番(-r2)を付けます—課金チームは曖昧な結合を嫌います。

プライバシー:生の OAuth リフレッシュトークンや顧客 PII フィールドはログに出さず、安定 ID をハッシュするか人が読むには8文字までに切り詰めます。

本番を「完了」と呼ぶ前の LaunchAgent ラッパーチェックリスト

  1. WorkingDirectory~/.openclaw か文書化された状態ディレクトリを指し、Desktop 同期フォルダではないこと。
  2. StandardOutPathStandardErrorPath~/Library/Logs/OpenClaw/ 以下に置き、パーミッション 644
  3. ThrottleInterval10 秒以上で、クラッシュループが LaunchServices を叩き続けるのを防ぐ。
  4. EnvironmentVariablesTZ=UTC を入れリージョン横断でログ時刻を揃える。
  5. KeepAlive true は終了コードを信頼してから。さもないと誤検知がブート嵐を隠す。
  6. ProcessType の Interactive と Background は、権限稿で文書化された TCC 前提と一致させる。

JSON のエラー率が跳ねたら、まず 設定 GitOpsに記録された最後の昇格を diff します。ログレベルの typo は最も安いロールバックです。非決定的なら デプロイ復旧へエスカレーションし、添付はローテ済み最新 3 ファイルの tarball に限定しディスク全体は持ち出さない。並行性でログが絡むなら 並列エージェントの安全策に戻り、ワーカーごとにファイル接頭辞を分けてから上流でマージします。

FAQ

JSONL を stdout のみに流してよいか? 開発では可。本番では必ずローテート付きファイルとペアにし、ユーザーがログアウトしても launchd が拾えるようにする。

冗長ログはモデル呼び出しを遅くするか? なり得ます—前後で p95 レイテンシを測り、ときにフル DEBUG より INFO とサンプリング DEBUG の方がよい。

GDPR 消去は? 個人データがどのフィールドに載るかのマップを維持し、テナント無関係のシャードを消さずに JSONL を日付範囲で削除できるようにする。

OpenClaw ログを ProxyMac Mac mini に集約する意味

Apple Silicon M4 は高速な APFS 圧縮、ログシッパー資格情報のネイティブ Keychain 統合、エージェントとログシンクを HK / JP / KR / SG / US の 1 台に共存させるのに十分な持続 IOPS を提供します。レンタルはコンプライアンスが保持期間を一晩で倍にしても CapEx 議論が要らず、この記事を リージョン別料金と併読すると経理も同じページに立てます。許可ダイアログは VNC で人を介在させ、JSONL をコード成果物のようにアーカイブすれば、ログは雑務ではなく競争優位になります。

可観測なデフォルトで OpenClaw を出荷

常時稼働エージェント向け HK / JP / KR / SG / US Mac mini