ローカルでPrometheusとGrafanaでダッシュボード作成してみる

スポンサーリンク

はじめに

今回は、ローカルでPromethesとGrafana動かし、メトリクスの可視化をしてみたいと思います。

PrometheusとGrafana

Prometheusは、メトリクス管理ツールです。

詳しくは、下記で解説しています。

【監視入門】とりあえず使ってみるPrometheus
はじめに本記事では、Promethesについてざっくり解説して、実際に簡単な監視をしてみたいと思います。実際に試す際は、ローカルにDocker Composeで構築します。PrometheusとはPrometheusとは、メトリク...

Grafanaは、データ可視化ツールです。

Prometheusの可視化ツールとしてよく使われています。

Grafana: The open observability platform
Grafana is the open source analytics & monitoring solution for every database.

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では、様々なダッシュボードが公開されており、インポートすることで簡単にダッシュボードの作成が可能です。

Dashboards
Browse a library of official and community-built dashboards.

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

Node Exporter Full dashboard for Grafana
Data visualization & monitoring with support for Graphite, InfluxDB, Prometheus, Elasticsearch and many more databases

公開されているページからIDをコピーしておきます。

「Import」からダッシュボードのインポートが可能です。

先ほどコピーしたIDを貼り付け、「Load」をクリックします。

データの取得先としてPrometheusを選択して、「Import」をクリックします。

これでダッシュボードのインポートが完了です。

まとめ

  • GrafanaでPrometheusのメトリクスの可視化ができる
  • ダッシュボードのインポートができる

参考

タイトルとURLをコピーしました