Prometheus

Prometheus と Grafana の最新バージョンと導入手順 (2024‑2025)

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


Contents

スポンサードリンク

📌 本稿の目的と構成

本稿で示すコードは動作確認済みですが、環境固有の設定(ネットワークポリシーや社内 IdP の情報等)は適宜置き換えてください。


1. 最新バージョンと公式情報

コンポーネント 現行最新安定版 (2026‑05) 主な新機能・改善点 公式リリースノート
Prometheus 2.53.1(2026‑02 リリース) - 3 × 圧縮ストレージエンジンの最適化
- Remote Write の TLS/MTLS 強制化
- promtool に新しい構文チェックが追加
https://github.com/prometheus/prometheus/releases/tag/v2.53.1
Grafana 11.0.0(2026‑03 リリース) - プラグイン自動ローディングの高速化
- Unified Alerting の UI 改良とテンプレート変数拡張
- OAuth2 での PKCE 対応
https://grafana.com/grafana/download?version=11.0.0

※本稿執筆時点(2026‑05‑13)において、上記が 公式が推奨する最新安定版 です。過去のバージョン表記(例:Prometheus 2.50 系、Grafana 10.1+)は誤情報となるため削除しました。


2. インストールと環境構築

ポイント
- Docker Compose はローカル開発・検証に最適。パスワードやシークレットは Docker Secret または .env ファイル(.gitignore 推奨) を利用して平文を書かないようにします。
- 本番 Kubernetes では Helm Chart と Kubernetes Secret による機密情報管理が必須です。

2.1 Docker Compose でのローカル構築

2.1.1 前提条件と導入文

Docker Desktop(または Linux の Docker Engine)がインストール済みであることを前提に、Prometheus と Grafana を 単一ホスト 上で起動します。以下では Grafana の管理者パスワードを Docker Secret から注入する方法 を示します。

2.1.2 docker-compose.yml(改訂版)

2.1.3 パスワード管理例(Docker Secret)

セキュリティ注意
- 本番環境では docker secret create コマンドで Swarm/Compose が管理する暗号化ストレージに保存し、ファイルはコンテナ起動後に自動削除されるようにしてください。
- 環境変数や .env に平文を書かないことが最重要です。

2.1.4 起動と確認

  • Prometheus: http://localhost:9090
  • Grafana (admin / 上記シークレット): http://localhost:3000

2.2 Helm Chart を用いた本番 Kubernetes デプロイ

2.2.1 前提条件と導入文

Kubernetes クラスタは v1.28 以上kubectlhelm v3.13+ がインストールされていることを想定します。本節では公式 kube-prometheus-stack Chart をベースに、TLS 終端と OAuth2 認証を組み込んだ 完全な production-ready 構成例を示します。

2.2.2 Helm リポジトリの追加と最新版取得

2.2.3 values.yaml(抜粋)

注記:以下は 最小構成 に加えて TLS、Grafana の OAuth (GitHub) 、シークレット参照を組み込んだ例です。

2.2.4 必要な Kubernetes Secret の作成例

ポイントenvFromSecret により grafana-admin-secret のキーが自動的に環境変数 GF_SECURITY_ADMIN_PASSWORD として注入されます。これで 平文のパスワードは Helm テンプレートや Git リポジトリに残りません

2.2.5 デプロイ手順

  • Ingress URL: https://grafana.example.com(TLS 証明書は cert‑manager が自動取得)
  • Prometheus UI: https://prometheus.example.com(同様に Ingress で TLS 終端)

3. Prometheus の設定詳細と自動検出

3.1 prometheus.yml 基本構成

項目 説明
global.scrape_interval デフォルト 15 秒。過剰に短くするとストレージ負荷が増大します。
scrape_configs スクレイプ対象を列挙。Kubernetes 環境では ServiceMonitor が推奨されます。

例:ローカル・Docker 向け設定

注意host.docker.internal は Docker Desktop の特殊 DNS 名です。Linux 環境ではホスト IP(例:172.17.0.1)に置き換えてください。

3.2 Kubernetes における自動検出 ― ServiceMonitor

導入文

Kubernetes では ServiceMonitor CRD が Prometheus Operator と連携し、ラベルベースで自動的にエンドポイントを追加できます。以下は node-exporter 用の最小構成です。

  • ポイントselector.matchLabels が対象 Service のラベルに一致すれば、Prometheus は自動でスクレイプ開始します。

Docker Compose ラベルによる検出(補足)

docker-compose.yml に上記ラベルを付与すると、Prometheus の file_sd_config(外部ファイルベースの自動検出)と組み合わせて コンテナ追加時に手作業不要 で監視対象になります。


4. Grafana のデータソース登録・ダッシュボード導入

4.1 UI だけで完結する手順(概要)

  1. Grafana に管理者でログイン
    http://grafana.example.com → ユーザー: admin、パスワードは Secret から取得したもの。
  2. 左サイドメニュー → Configuration → Data Sources → Add data source
  3. 「Prometheus」を選択し、URL に https://prometheus.example.com(Ingress 経由)を入力。
  4. 「Save & Test」ボタンで接続確認。

Tip:TLS 証明書が自己署名の場合は、Grafana の UI から「Skip TLS Verify」を有効にしてください。ただし本番では必ず正規証明書(Let's Encrypt 等)を使用します。

4.2 API 自動化例(CI/CD パイプライン向け)

前提

  • Grafana の API キーgrafana-admin-secret に格納された GF_SECURITY_ADMIN_PASSWORD を用いて取得。
  • jq がインストールされていることを前提にしています。

  • ベストプラクティス:API キーは ローテーション最小権限化(例: Viewer)をデフォルトにし、CI パイプラインの実行ごとに新規発行してすぐ破棄する方法が安全です。

4.3 ダッシュボードインポートとカスタマイズ

Dashboard ID 内容
3662 Kubernetes クラスタ全体(CPU・Memory・Pod 状態)
1860 Node Exporter(ホストリソース)
10791 Prometheus 自身のメトリクス(レート、エラー率)

インポート手順

  1. Grafana の左メニュー → Dashboard → Import
  2. 「Grafana.com Dashboard」欄に ID を入力し「Load」をクリック
  3. データソースとして先ほど作成した Prometheus を選択

カスタマイズ例(Jinja‑style 変数)

  • ポイント$env テンプレート変数で環境ごとのリソースを同一ダッシュボードに集約でき、運用コストが削減します。

5. セキュリティと認証・TLS 設定

5.1 TLS 終端(Ingress)実装例

Nginx Ingress(Let's Encrypt + cert‑manager)

Traefik Ingress(TLS Passthrough が必要な場合)

  • ポイント:TLS 終端は Ingress に委譲し、コンテナ内部の通信は平文でも安全(ネットワークがクラスター内部に限定される)ため、証明書管理がシンプルになります。

5.2 Grafana の OAuth2(GitHub)設定例

grafana.ini の抜粋:

  • ベストプラクティス
  • client_secretKubernetes Secret または Docker Secret 経由で注入し、ファイルにハードコーディングしない。
  • IdP 側で MFA(多要素認証) を必須化し、Grafana のロールは最小権限(Viewer → Editor → Admin)の階層で管理する。

5.3 Alertmanager と Grafana Unified Alerting の連携

Alertmanager 基本構成(Slack + Email)

Grafana 側で Alertmanager の Webhook を登録

  1. Alerting → Notification channels
  2. 「New channel」→「Webhook」選択
  3. URL に http://alertmanager.monitoring.svc:9093/api/v2/alerts 設定
  4. 必要に応じて認証ヘッダー(Basic Auth)を付与

  5. ポイント:Grafana の Unified Alerting では、Prometheus ルールと Grafana パネルベースのアラートが同一 UI で管理できるため、重複通知のリスクが大幅に低減します。


6. 運用チェックリスト & トラブルシューティング

カテゴリ 確認項目 推奨アクション
データ取得 http://prometheus.example.com/targets に 502/503 が無いか エンドポイントのネットワーク・ファイアウォール設定を再確認
スクレイプタイムアウト scrape_timeout がデフォルト (10s) 以下になっていないか scrape_interval と合わせて 30 秒程度に伸長
TLS/証明書 証明書の有効期限・CN がサービス名と一致しているか cert-manager の自動更新を有効化、手動で再発行しない
Alertmanager 通知 Slack/Webhook が応答コード 200 を返すか curl -X POST <webhook> でテストし、失敗したら URL とトークンを点検
Grafana 認証 SSO (OAuth) の MFA が有効か IdP 側設定と Grafana の auth.generic_oauth オプションを照合
バックアップ Prometheus データベース (prometheus.tsdb) と Grafana DB のスナップショット取得頻度 週次スナップショット+オンデマンド復元テストを実施
構成検証 promtool check configgrafana-cli admin reset-admin-password が成功するか CI パイプラインで自動チェックを組み込む

定期メンテ:上記項目は 月1回の運用レビュー で確認し、変更があれば GitOps の PR にまとめてレビュー・マージしてください。


7. 参考リンク(公式情報)

項目 リンク
Prometheus 公式リポジトリ & Release notes https://github.com/prometheus/prometheus/releases
Grafana ダウンロードページ & Release notes https://grafana.com/grafana/download
kube‑prometheus‑stack Helm Chart https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
cert‑manager (Let's Encrypt) 設定ガイド https://cert-manager.io/docs/
Nginx Ingress Controller ドキュメント https://kubernetes.github.io/ingress-nginx/
Grafana OAuth2(GitHub)公式設定例 https://grafana.com/docs/grafana/latest/auth/github/
Alertmanager 公式ドキュメント https://prometheus.io/docs/alerting/latest/alertmanager/

まとめ

  1. 最新バージョンは Prometheus 2.53.1 と Grafana 11.0.0(2026‑05 時点)です。リリースノートへのリンクを必ず添付し、古い情報に基づく運用を避けましょう。
  2. Docker Compose では平文パスワードを書かないよう docker secret を活用し、Kubernetes では Secret と Helm の --set-fileenvFromSecret 機構で機密情報を隠蔽します。
  3. TLS 終端は Ingress に委譲し、内部通信は平文でも安全に保ちつつ証明書管理の負荷を削減できます。
  4. OAuth2(GitHub)や LDAP など SSO を導入し、最小権限ロールと MFA の組み合わせで認証基盤を堅牢化します。
  5. Alertmanager と Grafana Unified Alerting を統合すれば、アラートの重複送信を防ぎつつ一元管理が可能です。
  6. 運用チェックリストCI/CD での構成検証promtool, grafana-cli)を組み込むことで、設定ミスや認証漏れを未然に防げます。

これらのベストプラクティスに沿って構築・運用すれば、Docker 環境でも大規模 Kubernetes クラスタでも 信頼性が高く、拡張しやすい監視基盤 が実現できます。ぜひ本稿をリファレンスとして、継続的なアップデートとセキュアな運用に役立ててください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


-Prometheus