Contents
Docker で導入する場合
Docker イメージは OS の違いに左右されずに同一環境を再現できるため、開発・検証・本番のどのフェーズでも手軽に利用できます。以下では docker compose を用いた最小構成と、コンテナ内部でバージョンを確認する方法を示します。
Docker Compose のサンプル
Docker Compose ファイルは プロジェクトディレクトリ に置き、docker compose up -d だけで Grafana が起動します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# docker-compose.yml(例) version: "3.8" services: grafana: image: grafana/grafana:latest # latest タグは常に公式イメージの最新リビルドを指す container_name: grafana ports: - "3000:3000" volumes: - ./grafana-data:/var/lib/grafana # データ永続化(ホスト側パスは環境に合わせて変更) environment: GF_SECURITY_ADMIN_PASSWORD: admin123 # 初期管理者パスワード |
起動とバージョン確認
|
1 2 3 4 5 6 |
# コンテナをバックグラウンドで起動 docker compose up -d # コンテナ内部で grafana-cli を実行してバージョン取得 docker exec -it grafana grafana-cli --version |
重要
grafana-cliはコンテナ内にしかインストールされていません。ホスト側で直接grafana-cli --versionを実行してもコマンドは見つかりません。バージョンを確認したいときは必ず上記のようにdocker execでコンテナ内部に入ってください。
apt パッケージでインストールする場合(Ubuntu/Debian 系)
APT は OS のパッケージ管理システムと統合できるため、長期運用や自動アップデートが必要な環境に向いています。公式リポジトリを追加した後の手順は次の通りです。
公式リポジトリの登録
|
1 2 3 4 5 6 7 8 |
# 必要パッケージと GPG 鍵の取得(キー保存先は /usr/share/keyrings 以下に固定) sudo apt-get install -y gnupg2 curl curl -fsSL https://apt.grafana.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/grafana-archive-keyring.gpg # APT ソースリストへ Grafana リポジトリを追加(ファイル名は環境に合わせて変更可) echo "deb [signed-by=/usr/share/keyrings/grafana-archive-keyring.gpg] https://apt.grafana.com stable main" | \ sudo tee /etc/apt/sources.list.d/grafana.list |
注記
上記のパスは Debian 系 Linux の標準的な配置です。別ディストリビューションやカスタム環境では、キーリングやsources.list.dの場所が異なる場合があります。
インストールとサービス起動
|
1 2 3 4 5 6 |
sudo apt-get update sudo apt-get install -y grafana # systemd による自動起動を有効化し、すぐに開始 sudo systemctl enable --now grafana-server |
バージョン確認
APT でインストールした場合はホスト側に grafana-cli が配置されます。以下のコマンドで現在実行中のバージョンを取得できます。
|
1 2 |
grafana-cli --version |
ポイント
apt upgrade grafanaとすれば、リポジトリが提供する最新パッチへ自動的に追従できるため、セキュリティ更新の手間が大幅に削減されます。
Grafana Cloud(SaaS)を利用する場合
サーバー管理を省きたいチームや、短期間で可視化基盤を立ち上げたいケースでは Grafana Cloud が便利です。無料プランでも基本的なダッシュボード作成・アラート機能が利用できます。
サインアップ手順(概要)
- https://grafana.com/auth/sign-up にアクセスし、GitHub/Google アカウントで登録
- 「Create a Cloud instance」画面で Free tier を選択
- インスタンス作成後に表示される URL(例:
https://my-grafana.grafana.net)へアクセスし、管理者パスワードを設定
注意点
無料プランのリソース上限は「メトリクス 50,000 シリーズ/日」や「データ保持期間 14 日」など、公式ドキュメントに随時更新されます。利用開始前に最新情報を必ず確認してください。
データソースの接続設定
Grafana の最大の強みは多様なメトリクス・ログ・トレースと連携できる点です。本節では Prometheus、OpenTelemetry Collector(OTLP 経由)および Loki(ログ)の設定手順を実例付きで解説します。
Prometheus の追加
Prometheus は時系列データの標準的な収集先です。Grafana 側では URL とアクセス方式だけで接続できます。
|
1 2 3 4 5 6 |
1. 左メニュー > Configuration → Data Sources → Add data source をクリック 2. 「Prometheus」を選択し、以下を入力 - URL: http://localhost:9090 # Docker ネットワーク内の場合はサービス名に置換 - Access: Server (default) 3. 「Save & Test」ボタンで接続確認。成功すると「Data source is working」と表示されます。 |
環境依存:
localhostはコンテナ外部からのアクセスを想定しています。Docker Compose 内の別サービスから参照する場合はhttp://prometheus:9090のようにネットワーク名へ置き換えてください。
OpenTelemetry(OTLP)経由でメトリクス取得
OpenTelemetry Collector が提供する OTLP エンドポイントを直接データソースとして登録します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# otel-collector-config.yaml(抜粋) receivers: otlp: protocols: grpc: {} http: {} exporters: prometheusremotewrite: endpoint: "http://<grafana-cloud-instance>/api/prom/push" service: pipelines: metrics: receivers: [otlp] exporters: [prometheusremotewrite] |
Grafana 側の設定は Prometheus データソースと同様に、OTLP の HTTP エンドポイント(例:https://my-grafana.grafana.net/api/prom)を入力すれば完了です。
ポイント
OTLP は gRPC と HTTP の両方に対応しているため、Collector 側の設定と合わせてプロトコルを選択してください。
Loki(ログ)の接続
Loki は Prometheus ラベル形式でログを集約できる軽量なログストレージです。
|
1 2 3 4 |
1. Configuration → Data Sources → Add data source → Loki を選択 2. URL に Loki のエンドポイントを入力(例:http://loki:3100) 3. 必要に応じて Basic Auth や Bearer Token を設定し、Save & Test で接続確認 |
接続が成功すれば Explore タブから {job="nginx"} のようなクエリでログ検索が可能です。
ダッシュボード作成とパネル構築
データソースが揃ったら、実際に可視化用のダッシュボードを作ります。ここでは「CPU 使用率」「メモリ使用率」「ディスク I/O」の3つの指標を 1 枚の画面にまとめる手順を示します。
パネル追加の基本フロー
- + New dashboard → Add panel をクリック
- 「Query」タブで対象データソース(例:Prometheus)とクエリ文字列を入力
- 「Visualization」パネルで表示形式(Graph、Stat、Bar gauge など)を選択し、タイトルや単位を設定
- 必要に応じて Alert タブで閾値ベースの通知ルールを作成
推奨クエリ例と可視化タイプ
| パネル名 | Prometheus クエリ | 可視化タイプ | 補足 |
|---|---|---|---|
| CPU 使用率 | 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) |
Graph(時間推移) | 複数インスタンスを同時表示 |
| メモリ使用率 | (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 |
Stat(単一指標) | 単位は %、色で閾値表現可 |
| ディスク I/O | rate(node_disk_reads_completed_total[1m]) or rate(node_disk_writes_completed_total[1m]) |
Bar gauge(読/書別表示) | ラベル job="node" で絞り込み |
ポイント:クエリは環境ごとにメトリクス名が異なることがあります。
node_exporterのバージョンやカスタムメトリクスを使用している場合は、適宜名前を置き換えてください。
パネルのカスタマイズとテンプレート変数活用
同じダッシュボードで多数のホストを監視したい場合は テンプレート変数 と 繰り返し行(Repeat) 機能が便利です。
変数作成手順
- Dashboard settings → Variables → New
- Name:
host、Type: Query、Data source: Prometheus - Query:
label_values(node_cpu_seconds_total, instance) - 「Add」して保存
これで $host が全インスタンスのリストとして利用可能になります。
繰り返し行でパネルを自動生成
パネル編集画面の General タブで以下を設定します。
- Repeat direction: Row(行単位)
- Repeat by variable:
$host
保存後、ダッシュボードはインスタンス数だけ行が増え、同一構成のパネルが自動的に複製されます。
注意:変数クエリはデータソースごとに異なる書式になるため、Prometheus 以外を利用する場合はそれぞれ対応したクエリを書き換えてください。
ダッシュボードの保存・共有と Grafana Cloud のプラン比較
作成したダッシュボードはチーム内外で再利用できるように JSON エクスポート と スナップショット 機能を活用します。また、クラウド版の無料プランと有料プランの主要な違いも整理しておきます。
JSON エクスポート
- パネル右上の Share アイコン → Export > View JSON
- 表示された JSON をコピーし、Git リポジトリや CI/CD の構成管理に保存
これによりコードレビューやバージョン管理が容易になります。
スナップショットで手軽に共有
- 同じく Share → Snapshot を選択
- 「Create public snapshot」ボタンをクリックし、生成された URL をコピー
- 有効期限(最大 30 日)や閲覧権限はオプションで設定可能
スナップショットは認証が不要なため、外部ステークホルダーへの一時的なデモに最適です。
Grafana Cloud プラン比較(2024 年時点)
| 項目 | Free (無料) | Pro / Advanced |
|---|---|---|
| データ保持期間 | 14 日 | 最大 365 日(プラン選択に応じて変動) |
| メトリクス上限 | 約 50,000 シリーズ/日 | 上限なし(実質的な制限はプランごとの料金体系) |
| ユーザー数 | 1 アカウント (SSO) | 複数ユーザー、ロールベースのアクセス管理 |
| Alerting | 基本メール通知 | 多彩なチャネル(Slack, PagerDuty, Webhook 等) |
| プラグインマーケット | 全プラグイン利用可 | 同上 + Enterprise 向けプラグイン |
| サポート | コミュニティフォーラム | SLA に基づく公式サポート |
ポイント:Free プランは個人・小規模テスト向けです。保持期間や高度なアラートが必要になったら、Pro へのアップグレードを検討してください。
実践例:CPU・メモリ・ディスク I/O を一枚のダッシュボードにまとめる手順
- データソース
-
Prometheus(メトリクス)と Loki(ログ)が追加済みであることを確認
-
テンプレート変数
$hostを作成し、インスタンス一覧を取得 -
パネル配置(行単位の繰り返し設定)
- Row 1: CPU 使用率 → Graph、アラート閾値 85%
- Row 2: メモリ使用率 → Stat、単位
% -
Row 3: ディスク I/O → Bar gauge、ラベル
read / write -
ダッシュボード保存
-
「Save as」からバージョン名
v1.0_initialを付与し、コメントに「初期監視テンプレート」と記入 -
共有
- JSON エクスポートでリポジトリへプッシュ
- スナップショット URL を生成し、チームの Slack に投稿
この手順を踏むだけで、複数サーバーの主要指標が一目で把握できる統合監視画面が完成します。
まとめ
- Docker は環境依存が少なく即時に最新イメージを取得可能。バージョン確認は
docker exec内で実行する点に注意。 - apt パッケージ は OS のパッケージ管理と統合でき、定期的なアップデートが容易。ホスト側に
grafana-cliがあるので直接バージョン確認可能。 - Grafana Cloud はサーバーメンテナンス不要で無料でも基本機能は利用可。ただしリソース上限は公式ドキュメントで随時確認すること。
- データソース(Prometheus、OpenTelemetry OTLP、Loki)を正しく接続すれば、メトリクス・ログ・トレースの統合可視化が実現できる。
- テンプレート変数と繰り返し行で「1 ダッシュボード × 多ホスト」構成を簡単に作れるので、運用コストが大幅に削減できる。
以上の手順とベストプラクティスに沿って設定すれば、初心者でも確実に Grafana 環境を構築・拡張できます。公式ドキュメントや GitHub リポジトリを併せて参照しながら、実際のプロジェクトへ適用してみてください。