- OpenClawのcron + カスタムスキルでログ収集→解析→アラートを完全自動化
- LLMの推論力で従来ツールでは検出困難な異常パターンを発見
- Slack/Discord通知連携でインシデント対応の初動を劇的に短縮
「サーバーログが膨大すぎて、手動でチェックしきれない」「Datadogを導入するほどの予算がない」「CloudWatch Logsのアラートだけでは見落としが多い」——こんな悩みを抱えるSESエンジニアやスタートアップ運用者に朗報です。
OpenClawを使えば、AIエージェントによるインテリジェントなログ分析パイプラインを、既存インフラに追加コストほぼゼロで構築できます。
本記事では、OpenClawでログ分析を自動化する具体的な設定方法と運用のベストプラクティスを解説します。
なぜOpenClawでログ分析なのか
従来のログ分析ツールとの比較
| 項目 | DataDog / Splunk | CloudWatch Logs | OpenClaw |
|---|---|---|---|
| 初期コスト | 高い(月数万〜数十万円) | 従量課金 | LLM API料金のみ |
| セットアップ | 数日〜数週間 | 1〜2日 | 数時間 |
| パターン検出 | ルールベース | ルールベース | AI推論ベース |
| 自然言語レポート | ✕ | ✕ | ◎ |
| カスタムアクション | Webhook連携 | Lambda連携 | 任意の処理 |
| コンテキスト理解 | 限定的 | 限定的 | コードベース理解可能 |
OpenClawの最大の差別化ポイントは、ログの内容をコードベースのコンテキストと照合して分析できる点です。「このエラーはどのコードの変更が原因か」「この異常パターンはどのデプロイ以降で発生しているか」といった、人間の運用エンジニアが行う推論をAIが自動で行います。
構成①:ログ収集パイプライン
基本構成
OpenClawでのログ分析は、以下の3つのコンポーネントで構成します:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ ログ収集 │───▶│ AI解析 │───▶│ 通知/対応 │
│ (cron/exec) │ │ (LLM分析) │ │ (Slack/実行) │
└──────────────┘ └──────────────┘ └──────────────┘
カスタムスキルの作成
まず、ログ分析用のカスタムスキルを作成します:
# ~/.openclaw/skills/log-analyzer/SKILL.md
---
name: log-analyzer
description: サーバーログを収集・分析し、異常検出とレポート生成を行う
---
## 概要
SSH経由またはCloudWatch Logs APIでログを収集し、AIで分析する。
## 収集ソース
- アプリケーションログ: /var/log/app/application.log
- Nginxアクセスログ: /var/log/nginx/access.log
- システムログ: journalctl
## 分析項目
1. エラー率の変動(過去1時間 vs 過去24時間平均)
2. 新規エラーパターンの検出
3. レスポンスタイムの劣化
4. 不審なアクセスパターン(セキュリティ)
5. リソース枯渇の予兆
## 判定基準
- 🔴 CRITICAL: エラー率 > 5% or 新規5xx大量発生
- 🟡 WARNING: エラー率 > 1% or レスポンスタイム2倍以上
- 🟢 OK: 異常なし
cronジョブの設定
{
"cron": {
"log-analysis-hourly": {
"schedule": "0 * * * *",
"prompt": "log-analyzerスキルに従い、過去1時間のログを分析してください。異常があればSlack #alertsに通知。",
"model": "anthropic/claude-sonnet-4-20250514",
"channel": "slack:C0AF55LV0B0"
},
"log-analysis-daily": {
"schedule": "0 9 * * *",
"prompt": "log-analyzerスキルに従い、過去24時間のログサマリーレポートを作成してください。",
"model": "anthropic/claude-sonnet-4-20250514",
"channel": "slack:C0AF55LV0B0"
}
}
}
構成②:AI解析エンジン
エラーパターン分析
OpenClawエージェントは、ログをLLMに渡して高度な分析を行います。以下は典型的な分析フローです:
# Step 1: エラーログの収集
ssh production-server 'grep -E "ERROR|FATAL" /var/log/app/application.log \
| tail -200' > /tmp/recent-errors.log
# Step 2: エラーの分類とカウント
ssh production-server 'grep "ERROR" /var/log/app/application.log \
| awk "{print \$NF}" | sort | uniq -c | sort -rn | head -20' > /tmp/error-counts.txt
# Step 3: AIによる分析
# OpenClawエージェントがこれらのファイルを読み取り、分析プロンプトを構成
エージェントは以下のような構造化分析を実行します:
## ログ分析レポート(2026-03-13 09:00 JST)
### 📊 サマリー
- 分析期間: 過去1時間(08:00〜09:00)
- 総リクエスト数: 15,432
- エラー率: 2.3%(前時間比 +1.8%)🟡
- 平均レスポンスタイム: 245ms(前時間比 +32%)🟡
### 🔴 新規エラー(要対応)
1. **NullPointerException @ OrderService.java:145**(23件)
- 初出: 08:23
- 影響: 注文確定APIが断続的に失敗
- 推定原因: 08:20のデプロイ(commit: abc1234)で
customer.getAddress() の null チェックが欠落
- 推奨アクション: ホットフィックスまたはロールバック
2. **ConnectionPoolExhausted**(5件)
- 初出: 08:45
- 影響: DB接続タイムアウト
- 推定原因: 上記NullPointerのリトライによる接続プール枯渇
- 推奨アクション: 根本原因(#1)の修正で解消見込み
### 🟢 既知のエラー(対応不要)
- TimeoutException @ ExternalPaymentAPI(3件): 外部API側の一時的遅延
- FileNotFoundException @ CacheService(1件): キャッシュTTL切れによる正常動作
セキュリティログ分析
# Nginxアクセスログからの不審パターン検出
ssh production-server 'cat /var/log/nginx/access.log | tail -10000' > /tmp/access.log
エージェントは以下のセキュリティパターンを自動検出します:
- ブルートフォース攻撃: 同一IPからの大量ログイン試行
- パストラバーサル:
../を含むリクエストパス - SQLインジェクション試行:
' OR 1=1等のパターン - 異常なUser-Agent: ボットやスキャナーのシグネチャ
- レート異常: 特定エンドポイントへの短時間大量アクセス
構成③:インテリジェントアラート
Slack通知の設計
OpenClawのメッセージングツールを使って、重要度に応じたアラートを送信します:
// エージェントのアラート判定ロジック(概念的なフロー)
// CRITICAL: 即座にSlack通知 + メンション
if (severity === 'CRITICAL') {
await message({
action: 'send',
target: 'C0AF55LV0B0',
message: `🔴 **CRITICAL アラート**\n${summary}\n\n@channel 即時対応が必要です`,
});
}
// WARNING: Slack通知(メンションなし)
if (severity === 'WARNING') {
await message({
action: 'send',
target: 'C0AF55LV0B0',
message: `🟡 **WARNING**\n${summary}\n\n次回のメンテナンスウィンドウで対応推奨`,
});
}
エスカレーション設計
## アラートエスカレーション
### Level 1: 自動対応(エージェント判断)
- キャッシュクリア
- サービス再起動(設定で許可された場合)
- ログローテーション
### Level 2: 通知(人間の判断待ち)
- Slack #alerts に投稿
- 原因分析レポート付き
- 推奨アクションを提示
### Level 3: 緊急対応(即時エスカレーション)
- Slack メンション + DM
- PagerDuty/OpsGenie連携(Webhook経由)
- 自動ロールバックの提案

構成④:レポート生成
日次レポート
cronジョブで日次のログサマリーを自動生成します:
## 📋 日次ログ分析レポート(2026-03-12)
### インフラ健全性
| メトリクス | 値 | 前日比 | 判定 |
|-----------|-----|-------|------|
| 総リクエスト数 | 342,891 | +5.2% | 🟢 |
| エラー率 | 0.8% | -0.2% | 🟢 |
| 平均レスポンスタイム | 187ms | -12ms | 🟢 |
| P99レスポンスタイム | 1,245ms | +89ms | 🟡 |
| 5xxエラー | 234件 | -45件 | 🟢 |
### Top 5 エラー
1. TimeoutException(外部API): 89件 → 外部依存の許容範囲
2. ValidationError(入力値): 67件 → ユーザーエラー、対応不要
3. RateLimitExceeded: 45件 → 正常なレート制限動作
4. CacheException: 21件 → Redis接続一時切断(自動復旧済み)
5. PermissionDenied: 12件 → 不正アクセス試行(IP: 203.0.113.x)
### セキュリティ概要
- ブルートフォース試行: 3件(全てブロック済み)
- 不審なスキャン: 12件(一般的なボット)
- 新規の脅威: なし
### 推奨アクション
- [ ] P99レスポンスタイムの劣化調査(product-serviceのDB確認)
- [ ] IP 203.0.113.x のブロック検討
週次トレンド分析
## 📈 週次トレンド分析(2026-03-07〜2026-03-13)
### トラフィックトレンド
月: ████████████████ 32万
火: ██████████████████ 36万
水: ████████████████████ 40万
木: ███████████████████ 38万
金: ██████████████████████ 44万
土: ████████████ 24万
日: ██████████ 20万
### 注目トレンド
- 金曜のトラフィック急増はメールマガジン配信と相関(+22%)
- 水曜のエラー率上昇はデプロイと相関(デプロイ後30分で収束)
- 週末のレスポンスタイム改善はスケールダウンによるリソース余裕
### 改善提案
1. 金曜のメルマガ配信前にオートスケーリングの閾値を下げる
2. 水曜デプロイのカナリアリリース導入を検討
3. 週末のスケールダウンタイミングを1時間早めてコスト削減
応用:マルチサービスのログ統合
複数サービスの横断分析
OpenClawのサブエージェント機能を活用して、複数のサーバー・サービスのログを並列に収集・分析できます:
# HEARTBEAT.md での設定例
## ログ分析チェック(6時間おき)
1. API Gateway のアクセスログを確認
2. 各マイクロサービスのアプリケーションログを確認
3. データベースのスロークエリログを確認
4. 全体の相関分析を実行
5. 異常があればSlackに通知
ログとデプロイの相関
GitHubのデプロイ履歴とログの異常パターンを自動で照合します:
# 最近のデプロイ一覧を取得
gh run list --limit 10 --json conclusion,headBranch,createdAt
# エラーの初出時刻とデプロイ時刻を照合
# → 「このエラーは commit abc1234 のデプロイ後に発生開始」と特定
実装のベストプラクティス
1. ログのサンプリング
大量のログをすべてLLMに渡すとコストがかさむため、インテリジェントなサンプリングが重要です:
- エラーログ: 全件収集(量が少ないため)
- アクセスログ: ランダムサンプリング(10%)+ 異常値のみ全件
- デバッグログ: 本番では無効化
2. コスト管理
## ログ分析のコスト目安
| 分析頻度 | 1回あたりのトークン数 | 月間コスト目安 |
|---------|-------------------|-------------|
| 1時間ごと | 5,000〜10,000トークン | $15〜30 |
| 6時間ごと | 10,000〜20,000トークン | $5〜10 |
| 日次のみ | 20,000〜50,000トークン | $3〜5 |
3. プライバシーとセキュリティ
ログに含まれる個人情報を処理前にマスクすることが重要です:
# メールアドレス・IPアドレスのマスキング
sed -E 's/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/[EMAIL]/g' \
| sed -E 's/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[IP]/g'
まとめ
OpenClawを使ったログ分析の自動化は、「高価な監視ツールは導入できないが、手動チェックでは限界がある」という多くのSES現場の課題を解決する実践的なアプローチです。
AIの推論力により、ルールベースのアラートでは検出できない異常パターンの発見や、デプロイとの相関分析が可能になります。まずは日次レポートの自動生成から始めて、段階的に高度な分析を追加していくのがおすすめです。