はじめに
今回は、ローカルでPromethesとGrafana動かし、メトリクスの可視化をしてみたいと思います。
PrometheusとGrafana
Prometheusは、メトリクス管理ツールです。
詳しくは、下記で解説しています。

Grafanaは、データ可視化ツールです。
Prometheusの可視化ツールとしてよく使われています。

PrometheusとGrafanaの起動
まずは、PrometheusとGrafana、そして監視対象のnode-exporterをDocker Composeで構築します。
docker-compose.yml
docker-compose.yml
は以下の通りです。
version: '3'
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- '9090:9090'
grafana:
image: grafana/grafana
ports:
- "3000:3000"
node-exporter:
image: quay.io/prometheus/node-exporter
ports:
- 9100:9100
volumes:
- ./proc:/host/proc
- ./sys:/host/sys
- ./rootfs:/rootfs
prometheus.yml
また、Prometheusの設定ファイルであるprometheus.yml
も作成します。
node-exporter
のIPアドレスはローカルPCのIPアドレスになるので、ifconfigなどでIPアドレスを調べて追記してください。PrometheusからみるとlocalhostはPrometheus自身になるので、node-exporter
のIPアドレスをlocalhostにすると通信できないので注意してください。
global:
scrape_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'node'
scrape_interval: 5s
static_configs:
- targets: ['<PCのIPアドレス>:9100']
コンテナ起動
必要なファイルは以上なので、コンテナを起動します。
docker-compose up -d
Grafanaにログイン
http://localhost:3000
からGrafanaにアクセスできます。
初回は下記でログインすることができます。
- Username: admin
- Password: admin
データソースの設定
ログインができたらデータソースの設定をします。
「Data Source」をクリックします。
「Add data source」をクリックします。
データソースの中からPrometheusを選択します。
PrometheusのURLを設定します。
URLとするのは、docker-compose ps
で確認できるPrometheusの名前を使用します。下記の場合は、http://prometheus-grafana-sample_prometheus_1:9090
になります。
❯ docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
prometheus-grafana-sample_grafana_1 "/run.sh" grafana running 0.0.0.0:3000->3000/tcp
prometheus-grafana-sample_node-exporter_1 "/bin/node_exporter" node-exporter running 0.0.0.0:9100->9100/tcp
prometheus-grafana-sample_prometheus_1 "/bin/prometheus --c…" prometheus running 0.0.0.0:9090->9090/tcp
URLの設定ができたら「Save & test」をクリックして、「Data source is working」と出てきたら設定完了です。
ダッシュボードの作成
次に簡単なダッシュボードをしてみます。
まずは「Create」からダッシュボードの新規作成をします。
ダッシュボードの作成が始まるので、ここから自由にパネルなどを追加してダッシュボードを作成していきます。
とりあえず「Add a new panel」から新しいパネルを追加します。
パネルの設定画面になるので、PromQLを使ってPrometheusのメトリクスからデータを可視化します。その他、パネル名など様々な設定が可能です。
ここではrate(node_cpu_seconds_total{mode="system"}[1m])
を設定しています。
他にもパネルなどを追加してダッシュボードをカスタマイズできます。
最後にダッシュボードを保存すれば完了です。
ダッシュボードのインポート
Grafanaでは、様々なダッシュボードが公開されており、インポートすることで簡単にダッシュボードの作成が可能です。

今回は、node exporter用のダッシュボードをインポートしてみます。

公開されているページからIDをコピーしておきます。
「Import」からダッシュボードのインポートが可能です。
先ほどコピーしたIDを貼り付け、「Load」をクリックします。
データの取得先としてPrometheusを選択して、「Import」をクリックします。
これでダッシュボードのインポートが完了です。
まとめ
- GrafanaでPrometheusのメトリクスの可視化ができる
- ダッシュボードのインポートができる