---
title: Grafana 連携 - リアルタイムインフラ監視アラート
sidebarTitle: Grafana
description: GrafanaアラートをEchobellと統合してインフラ監視の即時通知を受け取るための完全ガイド。ステップバイステップのセットアップ、アラートテンプレート、webhook設定、Grafanaアラートのベストプラクティス。
---

import { Step, Steps } from "fumadocs-ui/components/steps";

# Grafana 連携

Grafana は、メトリクス、ログ、トレースの可視化に何千もの組織で使用されている人気のオープンソース分析・監視ソリューションです。Grafana を Echobell と統合することで、メトリクスがアラートをトリガーした際に即時通知を受け取ることができます。高い CPU 使用率、メモリ圧迫、失敗したサービス、その他の監視対象の状態など。

この包括的なガイドでは、基本的な設定から高度なアラート管理戦略まで、Grafana アラートと Echobell のセットアップ方法を説明します。

## 前提条件

開始前に、以下を確認してください：

- 少なくとも 1 つのチャンネルが作成された Echobell アカウント（[こちらから開始](/ja/docs)）
- Grafana インスタンスへのアクセス（バージョン 8.0 以降推奨、最高の互換性にはバージョン 9.0+）
- Grafana でアラート通知を設定する管理者権限（通常、Admin または Editor ロールが必要）
- Grafana ダッシュボードとメトリクスの基本的な理解
- 監視インフラストラクチャとアラート要件への精通

## セットアップの概要

統合プロセスは、通常 10-15 分で完了する 5 つの主要なステップで構成されています：

1. **Echobell チャンネルの作成** - Grafana アラート専用のチャンネルを設定
2. **通知テンプレートの設定** - デバイス上でアラートがどのように表示されるかをデザイン
3. **Webhook URL の取得** - チャンネルの固有の webhook エンドポイントを取得
4. **Grafana コンタクトポイントの設定** - Echobell にアラートを Grafana を設定
5. **Grafana でアラートルールを作成** - 通知をトリガーする条件を定義

設定後、アラートは自動的に Grafana からデバイスにリアルタイムで流れます。

## ステップバイステップガイド

<Steps>
<Step>
### Echobell チャンネルの作成

1. Echobell アプリを開く
2. 新しいチャンネルを作成（例：「Grafana アラート」）
3. 識別しやすい色を選択
</Step>
<Step>

### 通知テンプレートの設定

Grafana アラートを効果的にフォーマットするテンプレートを設定します：

**タイトルテンプレート:**

```
{{alertName}} - {{status}}
```

**本文テンプレート:**

```
🔔 アラート: {{alertName}}
📊 メトリクス: {{metric}}
📈 値: {{value}}
⏰ 時刻: {{time}}
ℹ️ メッセージ: {{message}}
```

これらのテンプレートは Grafana のアラートペイロード構造と連携します。

</Step>
<Step>
### Webhook URL の取得

1. チャンネル設定で、**トリガー**セクションを探す
2. 提供された webhook URL をコピー
3. この URL は Grafana の設定で使用するため、安全に保管
</Step>
<Step>

### Grafana コンタクトポイントの設定

1. Grafana で、**アラート設定** → **コンタクトポイント**に移動
2. **新規コンタクトポイント**をクリック
3. 以下を設定：
   - 名前：「Echobell」
   - タイプ：「Webhook」
   - URL：Echobell の webhook URL
   - HTTP メソッド：POST
   - コンテンツタイプ：application/json
4. メッセージテンプレートを設定：

```json
{
  "alertName": "{{ .alertName }}",
  "status": "{{ .status }}",
  "metric": "{{ .metric }}",
  "value": "{{ .value }}",
  "time": "{{ .time }}",
  "message": "{{ .message }}",
  "externalLink": "{{ .dashboardURL }}"
}
```

</Step>
<Step>
### アラートルールの作成

1. **アラート設定** → **アラートルール**に移動
2. 新しいアラートルールを作成または既存のものを編集
3. ルール設定で：
   - メトリクスに適切な条件を設定
   - 「Echobell」コンタクトポイントを選択
   - アラート評価基準を設定
</Step>
</Steps>

## 連携のテスト

セットアップの確認：

1. すぐにトリガーされる条件でテストアラートルールを作成
2. 条件が満たされるまで待機
3. Echobell アプリでアラート通知を確認
4. すべてのアラート変数が正しく表示されているか確認
5. 通知をクリックして、リンクされた Grafana ダッシュボードにアクセス

## アラート通知タイプ

Grafana アラートチャンネルを購読する際、以下の重要な通知タイプを設定：

- **時間重視**を緊急システムアラートや緊急通知に使用
- **通話**を重大な障害、重要なしきい値超過、または緊急アラートに使用
- **通常**を標準的な情報アラートと定期通知に使用

## アラート管理のベストプラクティス

### アラートテンプレートの整理

**すべてのチャンネルでアラートテンプレートを明確で一貫性のあるものに保つ：**

```
タイトル: {{alertName}} - {{status}}
本文:
サーバー: {{instance}}
メトリクス: {{metric}}
現在値: {{value}}
しきい値: {{threshold}}
```

- **構造化されたフォーマットを使用** - 明確なラベルで情報を整理
- **重要な情報を含める** - メトリクス名、値、しきい値、影響を受けるシステム
- **絵文字は控えめに** - 🚨 は重大、⚠️ は警告、✅ は解決済み
- **タイトルは簡潔に** - 問題を即座に伝える 5-8 語を目指す
- **テンプレートをテスト** - デプロイ前にテストアラートを送信してフォーマットを確認

### 重要アラートの設定

**通知疲れを避けるため適切なアラートしきい値を設定：**

- **過剰なアラートを避ける** - しきい値は興味深いレベルではなく、対処可能なレベルに設定
- **ヒステリシスを使用** - アラートと回復で異なるしきい値を設定
- **関連するアラートをグループ化** - 関連する条件を単一のアラートルールにまとめる
- **適切な評価間隔を設定** - 応答性とノイズ削減のバランスを取る
- **時間ウィンドウを考慮** - アラート前に複数の条件チェックを使用

**しきい値戦略の例：**

```
# 悪い例: CPU 50%でアラート（感度が高すぎる）
cpu_usage > 50

# 良い例: 5分間80%でアラート
avg_over_time(cpu_usage[5m]) > 80

# 最良の例: 段階的なアラート
# 70%継続で警告、90%で重大
```

### 意味のあるアラート名を使用

すぐに以下を伝える説明的な名前をアラートに付ける：

- **何が**監視されているか（CPU、メモリ、ディスク）
- **どこで**発生しているか（本番、ステージング、特定のインスタンス）
- **なぜ**重要か（ユーザー向けサービス、重要なデータベース）

良い例：

- "本番データベース - 高い接続プール使用率"
- "API ゲートウェイ - 応答時間の低下"
- "ワーカーノード 3 - ディスク容量が重大"

避けるべき例：

- "アラート 1"、"テストアラート"、"高い CPU"

### 十分なコンテキストを含める

アラートメッセージは以下に答えるべき：

- **何が起こったか？** トリガーされた特定の条件
- **どこで？** どのシステム、サービス、またはインスタンス
- **どの程度深刻か？** 現在の値 vs しきい値
- **いつ？** アラートのタイムスタンプ
- **次は何？** 関連するダッシュボードまたはランブックへのリンク

### 優先度レベルの設定

Echobell の[通知タイプ](/ja/docs/notification)を戦略的に使用：

- **通常**: 情報アラート、解決通知、緊急ではない警告
- **時間重視**: 数時間以内に注意が必要な重要なアラート
- **通話**: 即座の対応が必要な重大な本番問題

Grafana の重大度レベルを通知タイプにマッピング：

```
重大 + 本番 → 通話
高 + 本番 → 時間重視
中 → 時間重視
低 → 通常
情報/解決済み → 通常
```

### アラートセキュリティ

**監視インフラストラクチャを保護：**

- **Webhook URL を秘密に保つ** - 認証なしで通知を送信するアクセスを提供
- **環境変数を使用** - Grafana プロビジョニングファイルにハードコードしない
- **Webhook を定期的にローテーション** - 特にチームメンバーが離れる時
- **Webhook 配信を監視** - 失敗した配信を追跡し、異常を調査
- **アラート設定を監査** - 誰がアラートを変更するアクセス権を持っているか定期的にレビュー
- **アラートソースを検証** - コンタクトポイントに Grafana の組み込み認証を使用

### アラートライフサイクル管理

**健全なアラート衛生を維持：**

1. **定期的なレビュー** - 四半期ごとにアラートを監査し、古いルールを削除
2. **アラートを文書化** - 各アラートが存在する理由を説明する説明を追加
3. **アラート履歴を追跡** - 最も頻繁に発生するアラートを監視
4. **しきい値を調整** - 履歴データと誤検知率に基づいて調整
5. **古いアラートをアーカイブ** - 廃止されるサービスのルールは無効化しても保持
6. **バージョン管理** - Grafana プロビジョニングを使用してアラート変更を追跡

### パフォーマンスの考慮事項

- **アラートストームを避ける** - 適切なグループ化とタイミングを設定
- **通知ポリシーを使用** - 異なる重大度を適切なチャンネルにルーティング
- **待機/繰り返し間隔を設定** - 重複通知を防止
- **類似するアラートをグループ化** - 集約で通知量を削減
- **時間帯を考慮** - 営業時間フィルタリングに[条件](/ja/docs/conditions)を使用

## 実践的な例

### 高 CPU 使用率アラート

```
タイトル: {{instance}} CPU 重大
本文: CPU使用率: {{cpu_percent}}%
継続時間: {{duration}}
時刻: {{time}}
ダッシュボード: {{dashboard_url}}
```

### メモリ圧迫

```
タイトル: メモリ警告 - {{hostname}}
本文: 利用可能: {{available_mb}}MB ({{percent_free}}%)
しきい値: {{threshold_mb}}MB
アクション: メモリ集約的なプロセスを確認
```

### サービス停止

```
タイトル: 🚨 {{service_name}} 到達不能
本文: ヘルスチェック失敗
最終成功: {{last_successful_check}}
影響: {{affected_users}} ユーザーが影響を受けています
ランブック: {{runbook_url}}
```

## 一般的なユースケース

### インフラストラクチャ監視

- CPU、メモリ、ディスク使用率のしきい値
- ネットワークスループットとパケットロス
- サービスの可用性とヘルスチェック
- コンテナとポッドのステータス監視

### アプリケーションパフォーマンス

- 応答時間の低下
- エラー率の増加
- データベース接続プールの枯渇
- キュー深度と処理遅延

### ビジネスメトリクス

- トランザクション量の異常
- 分あたり収益の低下
- アクティブユーザー数の変化
- API レート制限への接近

### セキュリティ監視

- 認証失敗の試行
- 異常なアクセスパターン
- 証明書有効期限の警告
- ファイアウォールルール違反

[Grafana 通話通知に関するブログ投稿](/blog/grafana-call-notification)で統合戦略の詳細を学びましょう。

## トラブルシューティング

アラートを受信できない場合、以下の診断手順を実行してください：

### Webhook が通知をトリガーしない

1. **Webhook URL が正しくコピーされているか確認**

   - Echobell チャンネル → トリガー → Webhook に移動
   - `https://hook.echobell.one/t/`を含む完全な URL をコピー
   - Grafana に貼り付ける際に余分なスペースや文字が追加されていないことを確認

2. **チャンネルがアクティブか確認**

   - Echobell アプリを開く
   - Grafana アラートチャンネルに移動
   - 誤って削除またはアーカイブされていないことを確認

3. **アクティブな購読者がいるか確認**

   - 通知を受け取るには少なくとも 1 人が購読している必要があります
   - チャンネルの購読者リストを確認
   - 個人の購読がアクティブであることを確認

4. **Grafana のコンタクトポイント設定を確認**

   - Grafana で Alertting → Contact points に移動
   - Echobell コンタクトポイントを開く
   - URL がチャンネルの webhook と一致することを確認
   - HTTP メソッドが POST に設定されているか確認
   - Content-Type が application/json であることを確認

5. **Grafana のアラートルール設定を確認**

   - Alerting → Alert rules に移動
   - トリガーすべき特定のルールを開く
   - ルールが Echobell コンタクトポイントにリンクされていることを確認
   - 通知ポリシーが正しいコンタクトポイントにルーティングされているか確認

6. **Grafana のアラート履歴を確認**
   - Alerting → Alert rules に移動
   - ルールをクリック → 履歴を表示
   - アラートが実際に発火しているか確認（保留状態ではない）
   - 評価エラーがないか確認

### アラートが発火しているが配信されない

1. **Webhook を直接テスト**

   ```bash
   curl -X POST https://hook.echobell.one/t/YOUR_TOKEN \
     -H "Content-Type: application/json" \
     -d '{"alertName": "Test", "status": "firing"}'
   ```

   これから通知を受け取るが Grafana からは受け取らない場合、問題は Grafana の設定にあります。

2. **Grafana の通知ポリシーを確認**

   - Alerting → Notification policies に移動
   - ルールのラベルがポリシーのルーティングルールと一致するか確認
   - タイミングの問題を確認（グループ化の待機時間、繰り返し間隔）

3. **Grafana ログを確認**
   - Grafana のログで webhook 配信エラーを探す
   - HTTP ステータスコードを確認（200 であるべき）
   - タイムアウトまたは接続エラーを調査

### 通知が正しくレンダリングされない

1. **テンプレート変数が Grafana のペイロードと一致しない**

   - Grafana は`.alertName`、`.status`などの特定のフィールド名を送信
   - テンプレート変数がペイロード構造と一致することを確認
   - Grafana の「テスト」ボタンでテストして実際のペイロードを確認

2. **通知に情報が欠けている**

   - アラート設定によっては一部の Grafana 変数が空の場合があります
   - テンプレートにフォールバック値を追加：`{{alertName || "不明なアラート"}}`
   - 利用可能なテンプレート変数について Grafana ドキュメントを確認

3. **JSON パースエラー**
   - Grafana のメッセージテンプレートが有効な JSON であることを確認
   - エスケープされていない引用符や特殊文字を確認
   - オンライン JSON バリデーターを使用してペイロード構造を確認

### アラートのタイミング問題

1. **アラート受信の遅延**

   - ネットワーク接続を確認
   - Grafana が Echobell のサーバーに到達できることを確認
   - Grafana の評価間隔を確認（遅延を引き起こす可能性）
   - 通知ポリシーのタイミング設定を確認

2. **重複通知**

   - 通知ポリシーの繰り返し間隔設定を確認
   - 同じ条件で複数のルールが発火していないか確認
   - チャンネルに 1 つのコンタクトポイントのみが設定されていることを確認

3. **静かな時間帯の通知**
   - iOS フォーカスモードが通知配信に影響する可能性
   - 時間重視と通話通知は一部のフォーカスモードをバイパス可能
   - デバイスの通知設定を確認

## プライバシーとデータ取り扱い

Echobell のプライバシーファーストなアプローチ：

- アラートコンテンツはデバイスにローカル保存
- サーバーには必要な設定データのみ保存
- webhook URL は機密情報として扱う
- Echobell サーバーにアラートデータは保持されない

## 追加リソース

- [Grafana アラート設定ドキュメント](https://grafana.com/docs/grafana/latest/alerting/)
- [Echobell Webhook 連携](/ja/docs/webhook)
- [通知テンプレートガイド](/ja/docs/notification)
- [サポートセンター](/ja/docs/support)
