4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人運用AIアシスタント OpenClaw を Mac Mini にデプロイして、外出先からセキュリティアラート対応できるようにした話

4
Last updated at Posted at 2026-02-11

はじめに

外出先で急にセキュリティアラートの通知が来たとき、「今すぐ対応すべきか、帰宅してからでいいのか」を判断するのは難しいですよね。

私は Sysdig Secure を使ってコンテナのランタイムセキュリティ監視をしているのですが、アラートは Slack の #security-alerts チャンネルに集約されています。外出先で Slack を開いてアラートを確認しても、英語の詳細を読み解いて初動判断するのは正直しんどい...。

そこで、個人運用型 AI アシスタント OpenClaw を自宅の Mac Mini にデプロイして、Telegram から「最新のアラート説明して」と聞くだけで、日本語要約と初動提案をもらえる環境を作りました。

順調に進むかと思いきや、予想外の壁に何度もぶつかりました。特に Slack 連携では、公式ドキュメント通りに設定しても全く動かず、原因究明に数時間を費やすことに...。

この記事では、その失敗と成功の物語を、包み隠さずお伝えします。


最大の壁: Event Subscriptions の罠

デプロイ作業の中で、最も苦労したのが Slack 連携の Phase 3 でした。

OpenClaw の公式ドキュメントには「Socket Mode を有効化すれば Slack と連携できる」と書いてあります。指示通りに設定を進め、Gateway を再起動。チャンネルステータスを確認すると...

$ openclaw channels status --probe
Slack │ ON │ OK

✅ OK が出ている! これで完璧だと思いました。

ところが、Slack で OpenClaw にメッセージを送っても、一切応答がない。何度試しても無反応。ログを確認しても、メッセージを受信した形跡すらありません。

「Socket Mode の設定が間違っているのか?」「App Token が正しくないのか?」

色々と試行錯誤しましたが、一向に解決しません。公式ドキュメントを何度も読み返しても、設定に間違いは見当たらない。

原因究明に2時間ほど費やした後、ふと Slack App の設定画面を隅々まで確認していたところ、ある項目に気づきました。

slack-event-subscriptions-before.png

▲ Event Subscriptions 未登録の状態("No events added yet.")

Event Subscriptions の「Subscribe to bot events」が空っぽでした。

実は、Socket Mode を有効化しただけでは不十分で、12個の Bot Events を手動で追加する必要があったのです。

Event Name 説明
message.channels チャンネルにメッセージが投稿された
message.groups プライベートチャンネルにメッセージが投稿された
message.im DM にメッセージが投稿された
message.mpim マルチパーティ DM にメッセージが投稿された
app_mention @OpenClaw がメンションされた
reaction_added リアクションが追加された
... その他

slack-event-subscriptions-after.png

▲ Event Subscriptions 登録後(12個の Bot Events が表示される)

これらを追加して Gateway を再起動すると、ようやく OpenClaw が Slack のメッセージに応答するようになりました。

公式ドキュメントにも記載はされているのですが、「Socket Mode を有効化」という大きな手順の影に隠れて、見落としやすい設定でした。

💡 教訓: Socket Mode を使う場合でも、Event Subscriptions の設定は必須です。チャンネルステータスが OK でも、Event Subscriptions が未設定だとメッセージを受信できません。


もう一つの壁: allowBots の制約

Event Subscriptions を追加して、ようやく Slack 連携が動作するようになりました。次は Sysdig Secure のアラートを自動要約させる設定です。

当初の計画では、allowBots: true + requireMention: false で、Sysdig のアラートが投稿されたら自動的に OpenClaw が要約を投稿する想定でした。

ところが、この設定を試すと、OpenClaw が一切応答しなくなりました

調べてみると、OpenClaw の設計上、allowBots: true + requireMention: false の組み合わせは非サポートでした。理由は、bot 間の無限ループを防ぐためです。

確かに、Sysdig Bot → OpenClaw → 別の Bot → OpenClaw ... という無限ループに陥る可能性があります。セキュリティ上、正しい設計判断です。

でも、これだと自動要約ができない...。どうする?


解決策: Slack Workflow Builder

悩んだ末、Slack Workflow Builder を使うことにしました。

slack-workflow-builder-trial.png

▲ Slack Workflow Builder 無料トライアル通知

ワークフロー設定:

  1. トリガー: Sysdig が #security-alerts にメッセージを投稿
  2. アクション: @OpenClaw を自動メンション

これにより、Sysdig のアラートが来ると自動的に OpenClaw がメンションされ、要約が投稿されるようになりました。

sysdig-alert-auto-summary.png

▲ Sysdig アラートに対する OpenClaw の自動要約(テスト環境での検証)

OpenClaw の要約例:

1. ルール名・重大度:Sysdig Runtime Notable Events - High
2. 影響範囲:/etc/shadow(機密ファイル)読み取り監視
3. 初動提案:
   - Sysdig Console で実行詳細確認
   - 対象コンテナの不正ユーザー追加チェック
   - Pod名/プロセス詳細の確認

完璧です!

ただし、Slack Workflow Builder の無料トライアルは 29日間(2026-03-11 まで)。継続利用には有料プランへの切り替えが必要です。

⚠️ 注意: Workflow Builder は無料トライアル後、有料プランへの切り替えが必要です。代替案(Zapier、n8n など)も検討の余地があります。


成功の瞬間: クロスチャネル連携

Slack 連携の壁を乗り越え、ようやく全フェーズが完了しました。最後に、最も感動した瞬間を紹介します。

Telegram から Slack の履歴を参照できる

外出先で Telegram を開き、OpenClaw に「最新アラート説明して」と送信しました。

すると...

phase-a-auto-reference-test.png

▲ Telegram からの「最新アラート説明して」で Slack 履歴を自動参照(テスト環境での検証)

OpenClaw が Slack #security-alerts の履歴を自動参照して、3件のアラート一覧をテーブル形式で返信してくれました!

| # | 時刻 (UTC) | ルール                            | 重大度   |
|---|-----------|----------------------------------|---------|
| 1 | 04:44     | Read sensitive file untrusted    | Medium  |
| 2 | 04:48     | Read sensitive file untrusted    | Medium  |
| 3 | 05:16     | Read sensitive file untrusted    | Medium  |

すべて同じ内容: nuc1 で takaos が SSH 経由で sudo cat /etc/shadow を実行(テスト環境での検証)

これこそ、OpenClaw の真骨頂です。

Telegram と Slack という異なるプラットフォーム間で、OpenClaw がシームレスにデータを参照してくれる。追加設定は一切不要。標準機能として動作します。

この瞬間、数時間かけて苦労した Slack 連携の設定が、すべて報われた気がしました。


OpenClaw とは?(改めて紹介)

ここで改めて、OpenClaw について簡単に紹介します。

OpenClaw は、個人運用型の AI アシスタントです。ChatGPT や Claude のような SaaS とは異なり、自分のマシン上で動作し、Telegram、Slack、Discord などの既存メッセージングプラットフォームと連携して利用できます。

主要な特徴

  • プライバシー重視: Gateway は localhost にバインドされ、外部からのアクセスは不可
  • マルチチャネル: Telegram、Slack、Discord などに対応
  • Pairing 認証: 初めての DM は承認制で、不正アクセスを防止
  • クロスチャネル連携: Telegram から Slack の履歴を参照できる
  • Node.js ベース: npm install -g openclaw で簡単にインストール可能

「個人用の Jarvis を作る」イメージで、各メッセージングアプリから AI アシスタントにアクセスできるのが魅力です。


デプロイの道のり(6フェーズ)

デプロイメントは Phase 0 から Phase 5 まで、合計 40タスク に分けて実施しました。総所要時間は 約6時間(2026-02-11 09:00〜15:00)。

ここでは、各フェーズの概要を簡潔に紹介します。

Phase 0: 事前準備

ホスト環境とアカウントの前提条件を確認しました。

  • macOS 26.1、Node.js 22、ディスク空き 127GB
  • Telegram、Slack、Anthropic API、Sysdig Secure の確認

Phase 1: 基盤構築

OpenClaw をインストールし、基盤を整えました。

# OpenClaw インストール
npm install -g openclaw@latest

# オンボーディング実行
openclaw onboard --install-daemon

# LLM 認証設定
claude setup-token
openclaw models auth setup-token --provider anthropic

ハマりポイント: nvm で Node.js を管理している場合、launchd で起動する際は Homebrew の Node.js を使う必要があります。

# Homebrew で Node.js 22 をインストール
brew install node@22
brew link --overwrite node@22

Phase 2: Telegram 連携

Telegram Bot を作成し、OpenClaw と連携しました。

telegram-pairing.png

▲ Telegram での Pairing code 発行画面。user id と一時コードが表示される

# Pairing 承認
openclaw pairing approve telegram <pairing-code>

Pairing 認証により、外出先からでも安全に OpenClaw にアクセスできます。

Phase 3: Slack 連携(最大の山場)

ここが最も苦労したフェーズです(前述の「Event Subscriptions の罠」)。

  1. Slack App 作成
  2. Socket Mode 有効化
  3. Event Subscriptions で 12個の Bot Events を追加 ← 見落としポイント
  4. Slack Workflow Builder で自動メンション設定

Phase 4: クロスチャネル連携

Telegram から Slack の履歴を参照できることを確認しました(前述の「成功の瞬間」)。

Phase 5: 安定運用

運用チェックリスト、Heartbeat、セキュリティ強化を実施しました。

  • 日次・週次・月次のメンテナンス項目を定義
  • configWrites: false でチャット経由の設定変更を禁止
  • Heartbeat で毎日のヘルスチェック

学んだこと Top 3

デプロイを通じて学んだことを3つ挙げます。

1. ステータス OK ≠ 動作 OK

openclaw channels status --probe で「OK」が表示されても、実際にメッセージを受信できるとは限りません。

Event Subscriptions が未設定だと、接続は OK でもメッセージは届きません。実際に動作確認することが重要です。

2. 公式ドキュメントの「見落としポイント」を意識する

公式ドキュメントは正確ですが、重要な設定が「さらっと」書かれていることがあります。

特に、「大きな手順」の影に隠れた「小さな設定」を見落としやすいです。隅々まで確認する習慣が大切です。

3. 制約は回避できる

allowBots + requireMention の制約に直面したとき、最初は「無理かも」と思いました。

でも、Slack Workflow Builder という代替手段がありました。制約を受け入れつつ、別の方法を探す柔軟性が重要です。


成果と今後の展望

成果

  • 6時間で 40タスク完了: Phase 0〜5 まで、すべてのテストに合格
  • 外出先から Telegram で質問: 「最新アラート説明して」で日本語要約 + 初動提案を取得
  • Slack アラート自動要約: Sysdig のアラートが来ると、OpenClaw が自動的に要約を投稿
  • クロスチャネル連携: Telegram ↔ Slack の履歴参照が標準機能として動作

今後の展望

  • Workflow Builder の代替案検討: 無料トライアル期限後(2026-03-11)の対応
  • 要約精度の向上: ワークスペースプロンプトのカスタマイズ
  • Discord チャネル追加: チーム運用への拡張
  • Heartbeat の活用: 異常検知時の自動通知

まとめ

OpenClaw は、個人運用型 AI アシスタントとして非常に強力です。特に、クロスチャネル連携の機能により、Telegram から Slack の履歴を参照できる点が素晴らしいです。

デプロイ中には予想外の壁にぶつかりましたが、すべて解決でき、安定運用の体制を整えることができました。

Event Subscriptions の罠、allowBots の制約、launchd と nvm の相性問題—これらのハマりポイントを乗り越えたからこそ、今は外出先から Telegram で「最新アラート説明して」と聞くだけで、日本語要約と初動提案をもらえる環境が手に入りました。

もし OpenClaw に興味があれば、ぜひ試してみてください。この記事が、あなたのデプロイの助けになれば幸いです。


参考リンク

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?