OpenClaw 構造化ログ、ディスク予算、LaunchAgent ログローテーション(レンタル Mac mini、2026)
レンタルした Apple Silicon Mac miniで OpenClaw を運用するプラットフォームエンジニアは、香港・日本・韓国・シンガポール・米国の VmMac 上でいずれ同じ壁にぶつかります。ゲートウェイが「死んだように見える」のに launchctl print は running のまま、あるいは 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 | 共有ポリシー |
ローテーション:copytruncate vs Reopen vs アプリ内
macOS チームは Linux の logrotate パターンを借りがちです。copytruncate は reopen シグナル不要で魅力的ですが、バースト Webhook では JSON をオブジェクト途中で切断します。ゲートウェイが対応するならサイズベース+原子 renameを優先し、cron テンポと静かな窓を合わせるサイドカー・ローテータも選択肢です。社内 ADR に決定を残し、当番が四半期に二度「ローテ修正」をしないようにします。
LaunchAgent plist 強化チェックリスト
- WorkingDirectory を書き込み可能な状態ディレクトリに明示し、非対話セッションの
$HOME曖昧さを排除。 - ThrottleInterval を調整し、クラッシュループでログ嵐を増幅しない。
- EnvironmentVariables にログレベルとリージョンタグ(
VMMAC_REGION=jp)を構造化フィールドへ。 - どのユーザードメインがエージェントを読み込むか(
launchctl bootstrap gui/$UIDなど)をソフト依存として文書化。 - ExitTimeOut を ゲートウェイ復旧のグレースフルシャットダウンに合わせる。
ログは「正常」に見えるのにヘルスが落ちるときの 6 ステップ
- OpenClaw 本体に触れる前に空き容量と inodeを確認。
- plist パスが存在し、ジョブを読み込むユーザードメインと一致するか検証。
- stdout JSONL と stderr を別々に末尾 200 行を tail。
- イングレス層の Webhook タイムスタンプと相関。
- カナリアエージェントのみで制御されたバーストを再現。
- 保持変更と SLO 文書更新で前進ロール。
接続:ゲートウェイ復旧とデーモン障害切り分け
ゲートウェイ復旧のスクリプトがターミナルでは成功して CI では失敗する場合、原因は多く相対ログパスか環境変数欠落による実効ログディレクトリの変化です。stdout 修正を デーモントラブルシュートの権限マトリクスとセットで検証し、TCC が副次ライターをまだブロックしているのに勝利宣言しないでください。
FAQ:Mac mini 上の OpenClaw ログとディスク
StandardOutPath は無限に伸ばせる?技術的には可能ですが、運用上はディスクを満杯にして書き込みを停滞させます——上限とローテーションを。
copytruncate は許容?バーストで JSON 完全性を証明できる場合のみ。それ以外はより安全なローテーションへ。
「ゲートウェイダウン」ページとの関係?多くはディスクまたはパスドリフト。バイナリ再配布の前にログを確認。
なぜ 2026 年もログ偏重 OpenClaw に Mac mini M4 が合うか
Apple Silicon Mac mini は高速 NVMeと十分な持続書き込みスループットを備え、常時オンエージェントでもサーマルを安定させながら構造化ログを「机上の空論」にしません。五地域でレンタルすれば、保持ポリシーを持つチームの隣にカナリアゲートウェイを置けます。ログパスを API 契約のように扱えば——版管理・テスト・退屈さ——OpenClaw は静寂時だけでなくトラフィック急増時も観測可能です。