OpenClaw 実践 · Mattermost · 多ノード · 最小権限

2026 OpenClaw MeshMac 実践:Mattermost Incoming Webhook で多ノード構築状態をブロードキャストする最小再現手順

2026年4月17日 Meshmac 読了目安 約5分

MeshMac多ノード共有プールでは、CI 結果を同一 Mattermost チャンネルへ揃えると運用が楽です。OpenClaw 2026ゲートウェイに置き、導入・doctorOPENCLAW_CONFIG_ROOTマルチノードデプロイガイド と同型です。ビルダー側は タスクキュー同期 でイベントのみ送り、Incoming Webhook への POST はゲートウェイ単独にします(Teams 版Matrix 版共有ビルド通知 と設計を揃えられます)。

ゲートウェイと Webhook 設定

対象チャンネルで統合(Incoming Webhook)を有効にし、発行される https://<サーバ>/hooks/<id> 形式の URL を一度だけ取得します。ゲートウェイは Content-Type: application/json{"text": "..."} もしくは attachments を送ります。自前 Mattermost の場合はサーバの TLS 終端と証明書チェーンを確認し、外向き通信はゲートウェイから Mattermost の FQDN(必要なら :443 以外の公開ポート)へ限定します。フォワードプロキシを挟む場合は ゲートウェイのレート・セッション FAQ と同様に、デーモンと同じ HTTPS_PROXYcurl し CONNECT が通ることを先に検証してください。

  • 手順 1. ゲートウェイ上にルート(例:/hooks/mattermost/build-status)を用意し、キューから来たイベントを JSON に整形してから Mattermost へ転送する。
  • 手順 2. 手元で curl -X POST -H 'Content-Type: application/json' -d '{"text":"probe"}' '<Webhook URL>' を実行し、チャンネルに 1 行出るまで繰り返す(URL はシェル履歴に残さない)。
  • 手順 3. クラスタ切替時も出口はゲートウェイのみ更新する(フェイルオーバー)。

多ノード状態の集約(最小手順)

各ビルド Mac は CI の生 JSON をそのまま Mattermost に送らず、ゲートウェイ内の共通キーに正規化してから 1 本の text または attachments を組み立てます。プロジェクト別設定 が分かれていても、通知用キーは揃えておくとフィルタや検索が楽です。

正規化キーMattermost 表示のコツ
workflowGitHub Actions の workflow 名など1 行目のラベルに使う
statesuccess / failure / cancelled絵文字や色付き attachments で区別
branchcommit短縮 SHA とリポジトリ URLクリックでログへ飛ばす
mesh_node_idRunner 名・ホストラベルフッタに「どの Mac か」を明示
provider_run_idrun_id / pipeline idstate と組み合わせて冪等キーにする

429 や一時的な 5xxキュー再試行 と同様に指数バックオフし、400 はペイロード修正まで再試行しない方が安全です。

トークンと最小権限

Incoming Webhook の URL にはパス上の秘密トークンが含まれます。Git にコミットせず、例として /etc/openclaw/secrets.d/mattermost/build-status.url0440 でゲートウェイ実行ユーザのみが読めるようにします。シークレット最小権限 の方針に沿い、ビルドワーカーにはファイル自体を配りません。漏えいや退職時は統合を再発行しファイルを差し替え、古い URL は即無効化します(手順の型は IM トークンローテ と同じです)。サーバ側で「投稿ユーザ名・アイコン」の上書きを許可する場合のみ username / icon_url を使い、不要なら省いて攻撃面を狭めます。

メッセージが届かないときの FAQ

現象切り分け
CI は緑だがチャンネルが無音ゲートウェイの送信ログの HTTP ステータス、text が空でないか、Webhook が無効化されていないか
curl は成功するが CI からは失敗ゲートウェイまでイベントが届いているか、キュー詰まり、認証ヘッダの誤り
特定ノードだけ欠落その Mac が古い URL で直接 POST していないか、プロキシ迂回の残り
HTTP 200 だが表示がおかしいMattermost の Markdown 制限、attachments の fallback、モバイルでの折りたたみ
急に 404Webhook 再発行後にゲートウェイの秘密ファイルが未更新

まとめ・次の一手(ログイン不要)

ゲートウェイ一箇所に Webhook URL を集約し、出站は Mattermost サーバへだけ、mesh_node_idprovider_run_id で観測と冪等を揃えるのが 2026 年の最小セットです。関連記事は OpenClaw 特集ブログ一覧 からどうぞ。

Mesh · 多ノード · 閲覧はログイン不要

プールを増やすほど「通知の単一路」と「秘密の一か所」が効きます

Webhook を Mac 台数ぶん複製するとローテと FW が破綻しがちです。Mesh/多ノードでレーンを足す場合は、まず ホーム で追加容量と料金コンテキストを確認し、ヘルプセンターブログ のチェックリストでゲートウェイ・キュー・出站を揃えてから 購入 フローへ進んでください。CTA ページの閲覧にログインは不要です。

購入へ