AIを活用したログ分析
Log Observer における AI 機能 #
Splunk Observability Cloud の Log Observer には、大量のログデータを理解するのに役立つ AI 搭載機能がいくつか含まれています
- パターン検出: ログ内の共通パターンを自動的に識別します
- 異常ハイライト: 通常とは異なるログエントリやパターンを表面化します
- ログクラスタリング: 類似のログメッセージをグループ化します
- インテリジェントフィルタリング: コンテキストに基づいた AI 推奨フィルターを提供します
- 自然言語クエリ: 自然言語を使用してログをクエリできます(利用可能な場合)
パターン検出 #
ログパターン検出とは? #
個々のログ行を表示する代わりに、パターン検出はログを構造別にグループ化し、以下のことを容易にします
- 頻出パターンとレアパターンの識別
- 新しいまたは異常なログパターンの発見
- 異常なエントリへの集中
- 繰り返しログからのノイズ削減
仕組み #
AI エンジンは以下を行います
- ログメッセージの構造を分析します
- 可変部分(ID、タイムスタンプ、値)を識別します
- パターンテンプレートを作成します
- テンプレートごとにログをグループ化します
- パターンの頻度と変化を追跡します
ハンズオン演習: ログパターンの探索 #
Exercise
ステップ 1: Log Observer へのアクセス
- Log Observer に移動します
- アクティブなログデータがある時間範囲を選択します
- 多様なログがあるサービスまたはインデックスを選択します
ステップ 2: パターンビューの有効化
- Patterns または Pattern Analysis ビューを探します
- 個別ログビューからパターンビューに切り替えます
- ログがどのようにクラスタリングされているか観察します
ステップ 3: パターンの分析
パターンリストを確認します
- 高頻度パターン: 通常の、予想されるログ
- 新しいパターン: 最近出現したもの(潜在的な問題)
- レアパターン: 頻度が低く、調査する価値があるもの
- エラーパターン: 構造化されたエラーメッセージ
ステップ 4: 異常の調査
- レアまたは新しいパターンをクリックします
- そのパターンのログ例を表示します
- ベースライン/通常のパターンと比較します
- 問題を示しているかどうかを判断します
ログ異常検出 #
検出される異常の種類 #
- 頻度の異常: ログボリュームの突然の増加/減少
- コンテンツの異常: 通常とは異なるフィールド値やメッセージ内容
- パターンの異常: ベースラインにない新しいパターン
- タイミングの異常: 通常とは異なる時間に出現するログ
異常検出の設定 #
ML を使用したログベースのディテクターを設定します
- Alerts & Detectors に移動します
- Log Observer から新しいディテクターを作成します
- Anomaly Detection モードを選択します
- 以下を設定します
- ベースライン期間
- 感度レベル
- アラート条件
- 通知チャネル
インテリジェントログフィルタリング #
AI 推奨フィルター #
調査中に、Log Observer は以下を提案する場合があります
- 関連フィールド: フィルタリングする価値のあるタグや属性
- よくある値: 頻繁に出現するフィールド値
- 異常な値: 注意を払うべき通常とは異なるフィールド値
- 相関属性: よく一緒に出現するフィールド
推奨フィルターの使用 #
- UI でフィルターの提案を探します
- クリックして推奨フィルターを適用します
- 結果に基づいて絞り込みます
- 有用なフィルターの組み合わせを保存します
APM およびインフラストラクチャとのログ相関 #
自動コンテキストリンク #
AI はログを以下に接続するのに役立ちます
- Traces: ログエントリを分散トレースにリンクします
- Services: ログを APM サービスに関連付けます
- Infrastructure: ホスト、コンテナ、Pod に接続します
- Metrics: ログパターンをメトリクスの変化と相関させます
AI の手がかりをたどる #
調査中の手順
- ログエントリまたはパターンから開始します
- Related Content の提案を探します
- 相関するトレース、メトリクス、またはインフラストラクチャにジャンプします
- Tag Spotlight を使用して問題を絞り込みます
- ログに戻って発見を検証します
ログの要約とインサイト #
主要インサイトパネル #
AI が生成するインサイトには以下が含まれる場合があります
- エラーレートの要約: エラータイプごとにグループ化
- サービスの健全性: ログの重大度に基づく
- トレンド分析: 時間の経過に伴うログパターンの変化
- 比較分析: 現在の期間とベースライン期間の比較
インサイトの例 #
text
⚠️ Error rate increased 340% in the last hour
→ Top error: "Database connection timeout" (1,247 occurrences)
→ Affected services: checkout-service, payment-service
→ Started at: 14:23 UTC
📊 New log pattern detected
→ "WARN: Cache miss for key {key}" appeared 892 times
→ First seen: 14:25 UTC
→ May indicate cache invalidation issueAI を活用したログ分析のベストプラクティス #
1. ログを構造化する #
構造化ログを使用して AI を支援します
json
{
"timestamp": "2024-01-15T14:23:45Z",
"level": "ERROR",
"service": "checkout-service",
"message": "Payment processing failed",
"error_code": "PAYMENT_TIMEOUT",
"transaction_id": "txn_123456",
"customer_tier": "enterprise"
}2. 一貫したフィールド名を使用する #
- サービス間でフィールドの命名を標準化します
- 共通の分類法を使用します(例:
service.nameであり、serviceNameとservice_idを混在させない) - すべてのログに必要なコンテキストを含めます
3. 適切なログレベルを設定する #
- DEBUG: 詳細な診断情報(開発用)
- INFO: 一般的な情報メッセージ
- WARN: 潜在的に有害な状況
- ERROR: アプリの実行継続は可能だがエラーイベント
- FATAL: 早期終了を引き起こす重大なエラー
4. ログサンプリングを活用する #
大量のログの場合
- AI を使用して代表的なサンプルを識別します
- エラーログと異常に焦点を当てます
- インテリジェントサンプリングを適用してコストを削減します
5. ログベースのディテクターを作成する #
以下に対するアラートを設定します
- クリティカルなエラーパターン
- 異常なログボリューム
- 新しいエラータイプ
- セキュリティ関連のパターン
ユースケース #
ユースケース 1: メモリリークの特定 #
観察結果: パターン分析で「GC pressure」警告の増加が示されています
AI は以下で支援します
- GC 関連のログパターンのグループ化
- 頻度の増加のハイライト
- メモリメトリクスとの相関
- 影響を受けるサービスのトレースへのリンク
ユースケース 2: セキュリティ問題の検出 #
観察結果: 新しいパターン「Authentication failed」が出現しています
AI は以下で支援します
- 新しい/レアなパターンとしてフラグ付け
- ソース IP によるクラスタリング
- 異常なアクセスパターンのハイライト
- セキュリティ関連のフィルターの提案
ユースケース 3: データベースパフォーマンスの低下 #
観察結果: スロークエリの警告が増加しています
AI は以下で支援します
- パターンごとのクエリのグループ化
- 最も遅いクエリタイプの識別
- データベースメトリクスとの相関
- アプリケーショントレースへのリンク
制限事項と考慮事項 #
- パターンの品質はログの構造に依存します: 非構造化ログはパターン化が困難です
- 高カーディナリティフィールド: UUID やユニーク ID はパターンを分割する可能性があります
- 学習期間: AI は異常検出のためにベースラインデータが必要です
- コンテキストが重要です: ログ AI を他のオブザーバビリティシグナルと組み合わせてください
Tip
最も効果的なログ分析は、AI を活用したパターン検出とドメイン知識を組み合わせることです。AI を使用してシグナルを表面化し、専門知識を活用してそれらを解釈してください。
次のステップ #
Log Observer の AI 機能を理解したところで、次はアプリケーションのトラブルシューティングのための APM AI Assistant を探索しましょう。
