Chapter 04

ローカル環境でPrometheusと同時にGrafanaをDockerで起動する

Yossy@Platform Engineer
Yossy@Platform Engineer
2024.03.29に更新

この章について

この章では、ローカル環境にGrafanaというDashboardツールを導入します。

Grafanaとは

https://grafana.com/

GrafanaとはGrafana Labsが提供するダッシュボードツールです。

前章で解説したようにPrometheusだけでもグラフを表示できますが、Prometheusはメトリクスを収集するためのツールなので、お世辞にも綺麗なグラフとは言えません。

Grafanaは人間が見やすいグラフを表示することに特化したツールのため、The かっこよくて見やすい! ダッシュボードをPrometheusが収集したメトリクスから構築することができます。

Grafana環境構築

それでは、先ほどPrometheusを構築したローカル環境にGrafanaをinstallしていきます。

docker-compose.ymlファイルにGrafanaに関する記述を追加します。

docker-compose.yml

version: "3.9"

services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
     - '9090:9090'
    volumes:
     - './prometheus.yml:/etc/prometheus/prometheus.yml'
     - 'prometheus-data:/prometheus'
  grafana:
    image: grafana/grafana-enterprise
    container_name: grafana
    ports:
     - '3000:3000'
volumes:
  prometheus-data: {}

ファイルを保存したら、docker compose upコマンドでローカルDocker環境を起動しましょう。

$ docker compose up

Prometheus Book

http://localhost:3000 にアクセスするとこのようなGrafanaのログイン画面が表示されます。

Grafanaにログインする

Grafanaの初期パスワードは、

id: admin
password: admin

です。

このID,Passwordを使ってログインを実行してください。

すると、Grafanaのホーム画面が確認できます。

Prometheus Book

DatasourceにPrometheusを登録する

Grafanaにログインができたら、前章で作成したPrometheusをGrafanaで表示します。

Connections - Data sources画面に移動して、prometheusをDatasourceに追加してください。

その際に、Connectionの項目にhttp://prometheus:9090と入力します。

Prometheus Book

Datasourceとは

Prometheusを登録したDatasourceというのは、Grafanaがデータを可視化するために参照するデータ置き場です。

Prometheusがデータを収集し、その収集したデータ置き場をDatasourceとしてGrafanaに登録し、Grafanaがそのデータを元に可視化します。

これがPrometheusとGrafanaを使ったモニタリングの基本的な運用です。

Dashboardを作成する

DatasourceとしてPrometheusを登録できたので、Grafana上でPrometheusのメトリクスデータを使ってダッシュボードを作成してみます。

Connections -> Data sources -> prometheus 画面に移動して、Dashboardsタブを開いてください。

Prometheus Book

その中から、Prometheus 2.0 StatsImportを選択して、Grafanaがデフォルトで用意しているPrometheusのダッシュボードを開きます。

Prometheus Book

このように、Prometheusのメトリクスをモニタリングできるダッシュボードが表示されます。

まとめ

Prometheusのみのダッシュボードだと見づらかったグラフがGrafanaのダッシュボード機能のおかげで見やすいグラフになりました。

GrafanaはPrometheusだけではなく様々なDatasourceをinstallすることができます。

様々なデータをDatasourceに登録し、自分専用のDashboardを作成してみてください!

サンプルソース

今回作成したソースは以下のrepositoryのlocal-basic-grafanaブランチに配置してあります。

https://github.com/rara-tan/zenn-book-prometheus-monitoring/tree/local-basic-grafana