Contents
Grafana ダッシュボードライブラリの検索方法と選定ポイント
Grafana 公式サイトが提供するダッシュボードギャラリーは、キーワード・タグ・更新日で細かく絞り込めるため、実務で即利用できるテンプレートを探す際に非常に便利です。この記事では 2024 年時点の情報 を元に、検索手順と選定時に注目すべきポイントをご紹介します。
検索手順(公式 UI の使い方)
Grafana のダッシュボードライブラリは以下の流れで目的のテンプレートを抽出できます。
- 公式ページ https://grafana.com/grafana/dashboards にアクセスし、検索窓に
Prometheusと入力します。 - 左側の「タグ」パネルから対象システム(例:
node-exporter、kubernetes、mysql)を選択します。 - 「ソート」ドロップダウンで 「Downloads (most recent)」 または 「Rating」 を選び、更新日が過去 12 カ月以内のものに絞ります。
ポイント:検索結果ページの各カードには「Compatible Grafana versions: ≥ 10.0」の表記がある場合があります。公式ドキュメント https://grafana.com/docs/grafana/latest/administration/provisioning/#dashboards でも、ダッシュボードが Grafana 10 系に対応しているかを確認できます。
現時点で人気のテンプレート例(順位は相対的な指標)
以下は検索結果から抽出した、ダウンロード数・評価が高く、Grafana 10+ に対応していることが公式ページで明示されている代表的な 10 件です。数値は執筆時点の目安であり、時間経過とともに変動しますので最新情報は各テンプレートページをご確認ください。
| ランキング | テンプレート ID | タイトル(タグ) | 主な対象メトリクス | 更新頻度* | Grafana 10+ 対応 |
|---|---|---|---|---|---|
| 1 | 1860 | Node Exporter Full (node-exporter) |
CPU、Memory、Disk I/O、Network | 月次 | ✅ |
| 2 | 2123 | Kubernetes Cluster Monitoring (kubernetes) |
Pod/Node/Etcd の状態 | 2 週間ごと | ✅ |
| 3 | 2471 | MySQL Overview (mysql) |
QPS、スロークエリ、レプリケーション | 月次 | ✅ |
| 4 | 2590 | Redis Insight (redis) |
コマンド数・メモリ使用率・レイテンシ | 2 週間ごと | ✅ |
| 5 | 2734 | Apache HTTP Server (apache) |
リクエスト数・エラーレート・応答時間 | 月次 | ✅ |
| 6 | 2841 | PostgreSQL Metrics (postgresql) |
トランザクション、ロック、バッファキャッシュ | 月次 | ✅ |
| 7 | 2958 | JVM (Java) (java) |
GC、ヒープ使用率、スレッド数 | 2 週間ごと | ✅ |
| 8 | 3070 | Nginx Metrics (nginx) |
リクエスト/秒・ステータスコード別集計 | 月次 | ✅ |
| 9 | 3192 | Cassandra Overview (cassandra) |
スループット、レイテンシ、コンパクション | 2 週間ごと | ✅ |
| 10 | 3315 | ElasticSearch Cluster (elasticsearch) |
シャード状態・検索レート・インデックスサイズ | 月次 | ✅ |
*更新頻度は各テンプレートの「Last Updated」情報を元にした目安です。
Prometheus データソース変数活用ガイド
Prometheus を Grafana のデータソースとして利用する際、環境ごとに異なるデータソース名やラベル構造に対応できるよう 変数置換 を活用することがベストプラクティスです。このセクションでは、変数の基本的な設定方法と汎用的な例を解説します。
変数置換の基本概念
Grafana はダッシュボード JSON 内で ${変数名} の形で記述された文字列を実行時に展開します。データソース名だけでなく、クエリ内のラベルやインスタンス名も同様に置き換えることができるため、環境移行時の手作業ミスを大幅に削減できます。
汎用的な変数例と設定方法
- データソース変数
${DS_PROMETHEUS} - 目的:ダッシュボード全体で同一の Prometheus インスタンスを参照させる。
-
設定手順:Grafana UI の「Settings」→「Variables」で
DS_PROMETHEUSを Data source タイプに設定し、対象データソース(例:prometheus-prod)を選択するだけで完了します。 -
ラベル系変数
${instance}/${node}など - 目的:Exporter が出力するインスタンス名が環境ごとに異なるケースに対応。
-
設定例(YAML)
yaml
apiVersion: 1
templating:
list:
- name: instance
type: query
datasource: ${DS_PROMETHEUS}
query: label_values(node_cpu_seconds_total, instance)
includeAll: true
multi: true -
注意点:
node_exporterのバージョンやカスタム Exporter によってラベル名はinstance、node、hostなどに変わります。上記のように変数名だけを統一し、クエリ側で実際のラベル名に合わせて置換すれば、テンプレート自体は変更不要です。 -
環境固有の文字列変数(例:
namespace) - 目的:マルチテナント Kubernetes クラスターで名前空間ごとのメトリクスを切り替える。
-
設定例(JSON プロビジョニング)
json
{
"type": "query",
"name": "namespace",
"datasource": "${DS_PROMETHEUS}",
"query": "label_values(kube_pod_info, namespace)",
"includeAll": true,
"multi": false
}
ベストプラクティス:変数は「データソース名」+「ラベル系」の 2 カテゴリに絞り、命名規則(すべて小文字・アンダースコア区切り)をプロジェクト全体で統一すると管理が楽になります。
用途別おすすめテンプレート比較(ベスト 3)
実務でよく遭遇する監視シナリオは大きく サーバ監視 / Kubernetes 監視 / データベース/キャッシュ系 の 3 パターンに分かれます。ここでは、先ほど紹介した上位テンプレートからそれぞれのユースケースに最適なものをピックアップし、利点と留意点をまとめました。
Node Exporter Full – サーバ監視
Node Exporter が提供する 200 程度のメトリクスを網羅的に可視化したテンプレートです。CPU・メモリ・ディスク I/O の詳細情報が一画面で把握でき、Grafana 10 のパネル変数自動補完機能も利用されています。
| 項目 | 内容 |
|---|---|
| メトリクス網羅性 | CPU、meminfo、diskstats、netstat、systemd など 180+ |
| 更新頻度(最終) | 2024‑12‑05(月次) |
| Grafana 10 対応 | ✅(ダッシュボード JSON が v10 スキーマに準拠) |
| 主な落とし穴 | ラベル名が instance → node に変わっている環境ではクエリが失敗する可能性。$node 変数を追加すれば回避できる。 |
Kubernetes Cluster Monitoring – k8s
kube‑state‑metrics と Prometheus の標準メトリクスを組み合わせ、Pod/Node/Deployment/Etcd の状態を一画面で監視できます。マルチクラスタ環境でも変数設計がシンプルな点が特徴です。
| 項目 | 内容 |
|---|---|
| メトリクス網羅性 | Pod CPU/メモリ、Deployment レプリカ数、etcd ラテンシ など 120+ |
| 更新頻度(最終) | 2024‑11‑18(2 週間ごと) |
| Grafana 10 対応 | ✅(UI 改善に伴う変数 UI が利用可能) |
| 主な落とし穴 | ダッシュボードが ${DS_PROMETHEUS} を前提としているため、プロビジョニングでデータソース設定を忘れると全パネルが空になる。 |
データベース/キャッシュ系テンプレート(MySQL・Redis 等)
MySQL と Redis の主要指標を可視化するテンプレートは、アプリケーション層のパフォーマンス把握に有用です。Prometheus Exporter が提供するラベルを絞り込むことで、クエリ負荷を抑えつつ必要な情報だけを取得できます。
| 項目 | 内容 |
|---|---|
| メトリクス網羅性 | MySQL:QPS、InnoDB ロック、バッファプール;Redis:コマンド数・キー数・レイテンシ |
| 更新頻度(最終) | 2024‑10‑22(月次) |
| Grafana 10 対応 | ✅(JSON データモデルが統一されている) |
| 主な落とし穴 | Exporter のバージョンによってラベル名が instance → db_instance に変わるケースがある。クエリ中のラベルを ${db_instance} へ置換することで対応可能。 |
結論:上記 3 つは「メトリクス網羅性」「更新頻度」「Grafana 10+ 対応」の観点で最もバランスが取れており、導入時には必ず ラベル名の差異 と データソース変数設定 を確認してください。
JSON インポートとプロビジョニング手順ガイド
テンプレートを UI から手動でインポートする方法は緊急対応に便利ですが、本番環境ではコード管理と自動デプロイが必須です。ここでは、UI インポートの概要と、Git 管理下で Grafana Provisioning を利用した自動化手順を具体的に示します。
UI からのインポート手順(概略)
- Grafana のメニューから「+」→「Import」を選択。
- テンプレート ID(例:
1860)または取得した JSON を貼り付け、データソースとして${DS_PROMETHEUS}を指定する。 - 「Import」ボタンをクリックすればダッシュボードが作成されます。
注意:UI 方式は手作業になるため、再現性や変更履歴の管理が難しくなります。継続的に利用する場合は次節の provisioning を推奨します。
プロビジョニング用ディレクトリ構成と設定例
|
1 2 3 4 5 6 7 8 9 10 |
grafana/ ├─ provisioning/ │ ├─ datasources/ │ │ └─ prometheus.yml │ └─ dashboards/ │ ├─ node_exporter_full.json │ ├─ k8s_cluster_monitoring.json │ └─ db_cache_overview.json └─ dashboards.yaml # ダッシュボードプロバイダー設定 |
datasources/prometheus.yml(データソース定義)
|
1 2 3 4 5 6 7 8 |
apiVersion: 1 datasources: - name: ${DS_PROMETHEUS} type: prometheus url: http://prometheus.${namespace}.svc:9090 access: proxy isDefault: true |
dashboards.yaml(ダッシュボードプロバイダー)
|
1 2 3 4 5 6 7 8 9 10 11 12 |
apiVersion: 1 providers: - name: "default" orgId: 1 folder: "" type: file disableDeletion: false updateIntervalSeconds: 60 options: path: /etc/grafana/provisioning/dashboards # コンテナ内部の実パス |
JSON ファイル取得例(Node Exporter Full)
|
1 2 3 |
curl -sSL https://grafana.com/api/dashboards/1860/revisions/latest/download \ > provisioning/dashboards/node_exporter_full.json |
ポイント:取得した JSON に
"datasource": "Prometheus"とハードコーディングされている場合は、sed -i 's/"Prometheus"/"${DS_PROMETHEUS}"/g'で置換するか、datasourceフィールドを削除してデフォルトデータソースが自動適用されるようにします。
設定ミス防止チェックリスト
| 項目 | 確認ポイント |
|---|---|
| パス設定 | providers.options.path がコンテナ内部の実ディレクトリと一致しているか |
| ファイル権限 | JSON が Grafana ユーザーで読み取れる (chmod 644 推奨) |
| YAML インデント | スペース2個で統一、タブは使用しない |
| 自動リロード | updateIntervalSeconds ≥ 60 → ファイル更新だけで自動反映される |
運用ベストプラクティスと互換性チェックリスト
ダッシュボードを本番環境に展開した後は、アラート連携・Git 管理・パフォーマンス最適化 の 3 本柱で運用体制を固めることが成功の鍵です。ここでは具体的な手順と、2024 年時点の Prometheus/Grafana の主要機能に対する互換性チェックリストをご紹介します。
アラート連携と通知設定
Grafana の Alerting は Prometheus Alertmanager とシームレスに統合できます。Alert rule を YAML で定義し、プロビジョニングディレクトリに配置すれば CI/CD パイプラインから自動デプロイが可能です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
apiVersion: 1 groups: - name: node_exporter_alerts interval: 1m rules: - alert: HighCPUUsage expr: avg(rate(node_cpu_seconds_total{mode!="idle"}[5m])) by (instance) > 0.85 for: 2m labels: severity: critical annotations: summary: "CPU 使用率が高すぎます ({{ $labels.instance }})" description: "{{ $labels.instance }} の CPU が 85% を超えました。" |
配置場所:grafana/provisioning/alerting/alert_rules.yaml
このファイルを Grafana 起動時に自動ロードさせるだけで、Alertmanager に転送されます。
Git 管理と CI/CD パイプラインの実装例
| ステップ | 内容 |
|---|---|
| 1. リポジトリ構成 | dashboards/(JSON)・variables/(YAML)・provisioning/ を格納し、main ブランチを常にデプロイ可能状態に保つ。 |
| 2. 静的解析 | PR 作成時に GitHub Actions で jsonlint と yamllint を実行し、構文エラーを早期検出する。 |
| 3. スキーマ検証 | grafana-cli plugins ls で現在の Grafana バージョンを取得し、公式スキーマ (/public/app/plugins/datasource/prometheus/schema.json) と突合させるジョブを走らせる。 |
| 4. デプロイ | 成功した PR は helm upgrade --install grafana .(--set-file variables=variables.yml)で自動デプロイ。 |
パフォーマンス・互換性チェックリスト
- Remote Write が有効か:Prometheus の
remote_write設定があるか確認する。 - Exemplars が取得できているか:メトリクスに
exemplarラベルが付与されているか検証。 - Grafana JSON スキーマ準拠:ダッシュボード JSON が Grafana 10 のスキーマ (
apiVersion: 1) に合致しているか。 - Exporter バージョンのラベル整合性:使用中の Exporter が公式ドキュメントで推奨されているバージョン以上か、ラベル名が変わっていないかを確認する。
実践的なチェック例
bash
curl -s http://prometheus:9090/api/v1/label/name/values | grep node_cpu_seconds_total上記で取得できるメトリクスに期待したラベル(instance / node)が存在するか目視確認
まとめ
- 検索手順と公式互換性情報を活用すれば、Grafana 10+ に対応した高評価テンプレートを安全に取得できる。
- データソースやラベルの変数置換は「データソース名」+「ラベル系」の 2 カテゴリに絞り、環境ごとの差分管理をシンプルに保つことが重要。
- 用途別ベストテンプレート(Node Exporter / Kubernetes / DB/Cache)は、メトリクス網羅性・更新頻度・Grafana 10 対応の観点で最上位。導入時はラベル名相違とデータソース変数設定を必ず確認する。
- プロビジョニング による JSON 管理と Git/CI/CD の組み合わせで、再現性・変更履歴・自動ロールバックが実現できる。
- 最後に、Alerting、Git 管理、パフォーマンス最適化の 3 本柱を整え、上記チェックリストで 2024 年版 Prometheus/Grafana の互換性を定期的に検証すれば、長期にわたって安定した可視化基盤を維持できます。