OpenClaw 2026年4月17日

OpenClaw 構造化ログ、ディスク予算、LaunchAgent ログローテーション(レンタル Mac mini、2026)

VmMac エンジニアリングチーム 2026年4月17日 約 17 分

レンタルした Apple Silicon Mac miniOpenClaw を運用するプラットフォームエンジニアは、香港・日本・韓国・シンガポール・米国の VmMac 上でいずれ同じ壁にぶつかります。ゲートウェイが「死んだように見える」のに launchctl printrunning のまま、あるいは Webhook が静かに 500 になるのは stdout がフラッシュできないためです。本稿 2026 はマーケではなく、構造化ログディスククォータLaunchAgent StandardOutPath の衛生・再起動やマルチエージェントバーストに耐えるローテーション意味論への運用契約です。Mac mini へのインストールとデプロイエージェント起因再起動後のゲートウェイ復旧デーモンとポートのトラブルシュートWebhook と cron トリガーと併読し、VmMac ベアメタル上の実運用に観測可能性を揃えてください。

2026 セッション規律ヘッドレスと GUIを分け済みと仮定し、本文はバイトがディスクのどこに落ちるかと、ターゲットが消える/満杯になるときの launchd の挙動に絞ります。

シークレットと環境変数を LaunchAgent の plist にどう載せるかは、OpenClaw 秘密・環境・plist(レンタル Mac mini、2026) も参照してください。

launchd 配下の StandardOutPath/StandardErrorPath の罠

LaunchAgent が ~/Library/Logs//usr/local/var/log/ を指すと、チケットで支配的になる失敗は三類型です。再イメージ後にディレクトリ未作成ジョブユーザー変更による権限ドリフト単一ファイルの無制限肥大化で空き容量 SLO を割るケースです。launchd は多くの場合ジョブを生かしますが、ディスク満杯のバックプレッシャーは停滞・JSON 途中欠損・ヘルスチェックタイムアウトとして現れ、実際は書き込みでプロセスがブロックしています。

  • プロビジョニングでパスを先作成し、初回の手動成功だけに依存しない。
  • stdout と stderr を分離し、エラー急増で JSONL を壊さない。
  • メジャー設定ごとにパスを版付けし、保持ポリシーを混在させず diff 可能にする。

ディスク予算:エージェントとゲートウェイログのホスト別クォータ

共有 Mac mini プールでは、詳細なエージェントトレースを有効化する前にハード予算を割り当てます。512 GB ホストで OpenClaw と Xcode サイドカーを走らせる際の実用的な初期配分例:

スライス 予約 アラート閾値 オーナー
ゲートウェイ JSONL ローリング 20 GB 使用 16 GB プラットフォーム
エージェント別デバッグ 8 GB/エージェント 6 GB チームチェックアウト
システム+ Xcode キャッシュ 残り 空き < 40 GB 共有ポリシー
ストップ・ザ・ライン:連続 2 夜ローテーション後も空きが 35 GB を下回るならキャパ不足です。ログ詳細度を盲目に下げる前に、別 VmMac リージョンへホストを追加してください。

ローテーション:copytruncate vs Reopen vs アプリ内

macOS チームは Linux の logrotate パターンを借りがちです。copytruncate は reopen シグナル不要で魅力的ですが、バースト Webhook では JSON をオブジェクト途中で切断します。ゲートウェイが対応するならサイズベース+原子 renameを優先し、cron テンポと静かな窓を合わせるサイドカー・ローテータも選択肢です。社内 ADR に決定を残し、当番が四半期に二度「ローテ修正」をしないようにします。

テストマトリクス:ローテーション中に p95 Webhook ペイロードの 10× バーストを再生し、いずれかのコンシューマが不正 JSON を見たら、その負荷では戦略が誤りです——logrotate のせいではありません。

LaunchAgent plist 強化チェックリスト

  1. WorkingDirectory を書き込み可能な状態ディレクトリに明示し、非対話セッションの $HOME 曖昧さを排除。
  2. ThrottleInterval を調整し、クラッシュループでログ嵐を増幅しない。
  3. EnvironmentVariables にログレベルとリージョンタグ(VMMAC_REGION=jp)を構造化フィールドへ。
  4. どのユーザードメインがエージェントを読み込むか(launchctl bootstrap gui/$UID など)をソフト依存として文書化。
  5. ExitTimeOutゲートウェイ復旧のグレースフルシャットダウンに合わせる。

ログは「正常」に見えるのにヘルスが落ちるときの 6 ステップ

  1. OpenClaw 本体に触れる前に空き容量と inodeを確認。
  2. plist パスが存在し、ジョブを読み込むユーザードメインと一致するか検証。
  3. stdout JSONL と stderr を別々に末尾 200 行を tail。
  4. イングレス層の Webhook タイムスタンプと相関。
  5. カナリアエージェントのみで制御されたバーストを再現。
  6. 保持変更と SLO 文書更新で前進ロール

ゲートウェイ復旧のスクリプトがターミナルでは成功して CI では失敗する場合、原因は多く相対ログパス環境変数欠落による実効ログディレクトリの変化です。stdout 修正を デーモントラブルシュートの権限マトリクスとセットで検証し、TCC が副次ライターをまだブロックしているのに勝利宣言しないでください。

FAQ:Mac mini 上の OpenClaw ログとディスク

StandardOutPath は無限に伸ばせる?技術的には可能ですが、運用上はディスクを満杯にして書き込みを停滞させます——上限とローテーションを。

copytruncate は許容?バーストで JSON 完全性を証明できる場合のみ。それ以外はより安全なローテーションへ。

「ゲートウェイダウン」ページとの関係?多くはディスクまたはパスドリフト。バイナリ再配布の前にログを確認。

なぜ 2026 年もログ偏重 OpenClaw に Mac mini M4 が合うか

Apple Silicon Mac mini は高速 NVMeと十分な持続書き込みスループットを備え、常時オンエージェントでもサーマルを安定させながら構造化ログを「机上の空論」にしません。五地域でレンタルすれば、保持ポリシーを持つチームの隣にカナリアゲートウェイを置けます。ログパスを API 契約のように扱えば——版管理・テスト・退屈さ——OpenClaw は静寂時だけでなくトラフィック急増時も観測可能です。

ログ安全なカナリアホストを立てる

最寄りの VmMac リージョンに Mac mini を追加し、本番保持を変える前に Webhook バースト下でローテーションを検証します。