Ubuntu Weekly Recipe

第562回 モニタリングツールPrometheusを使う

この記事を読むのに必要な時間:およそ 6 分

PromQLを使用したグラフの描画

Prometheusでは時系列データベースに対してPromQL という独自のクエリ言語を使用してグラフの描画やデータの加工,アラートの生成などの全般的なデータ操作を行います。このためPrometheusを使用する上でPromQLの使用は必須となります。

PromQLの簡単な例をいくつか紹介します。

PromQLの発行クライアントとして,Prometheusのダッシュボードが使えますのでブラウザでアクセスします。

一番上のテキストボックスに以下を入力してエンターキーを押下すると,先程追加したNode_Exporterで取得したload1というロードアベレージの一分間の平均値を取得したメトリックの時系列グラフを取得できます図5)⁠

node_load1{instance="localhost:9100"}

図5 load1のグラフ

画像

また,テキストボックスに以下を入力してエンターキーを押下すると,Node_Exporterから収集した各コア,各モード(idle以外)のCPU使用率の時系列グラフを取得できます図6注5)⁠

注5
グラフのタイムゾーンはすべてGMTになります。これは変更ができません。 もしJSTなど使用者のタイムゾーンに合わせたい場合は後述のGrafanaを使う必要があります。
irate(node_cpu_seconds_total{instance="localhost:9100", mode!="idle"}[1m]) * 100

図6 CPU使用率のグラフ

画像

上記のクエリでは,node_cpu_seconds_totalという各コア,各モードのCPU使用時間の累計を記録したメトリックのlocalhostで,かつ直近1分間のデータのうちmodeがidle以外なものを指定しています注6注7)⁠そして,irate()という一秒あたりの率を計算する関数へ渡し,結果をパーセントの形にするために100倍しています。

注6
これはRange Vectorと呼ばれます。また,加工前のnode_cpu_seconds_totalのような(単純な)時系列データはInstant Vectorと呼ばれます。
注7
当然ながら,期間の最小値はメトリック取得周期に依存します。例えば15秒周期でメトリックを取っている場合は30秒よりも長い期間を指定する必要があります。

Grafanaのインストールとダッシュボードの作成

先に紹介したPrometheusのダッシュボードはグラフを可視化するものですが,これはあくまで一時的なものであり,画面を閉じると消えてしまいます。また,複数のメトリックを一つのグラフに描画するということも(少なくとも容易には)できません注8)⁠

注8
例えば前述のconsole templateを自作する方法もあります。

Prometheusの可視化ツールとしてのデファクトスタンダードはGrafanaです。PrometheusのダッシュボードとGrafanaでは基本的には以下の使い分けをします。

  • 何か確認したいことや,異常があった時の調査では,PrometheusダッシュボードからPromQLをクエリして確認する
  • 日常的によく見るものに関してはGrafanaダッシュボードにグラフを作成しておく

Grafanaは公式のインストールドキュメントに従ってインストールし,Grafanaを起動します。

$ sudo /bin/bash -c "echo deb https://packages.grafana.com/oss/deb stable main > /etc/apt/sources.list.d/grafana.list"
$ curl https://packages.grafana.com/gpg.key | sudo apt-key add -
$ sudo apt update
$ sudo apt install grafana
$ sudo systemctl start grafana-server.service 

Grafanaの起動後,ブラウザでGrafanaをインストールしたホストの3000番ポートへアクセスすると,ログイン画面が表示されるのでadminユーザでログインします。デフォルトパスワードはadminで,入力後即座に本パスワードの設定を促されます。

ログイン後データソースとしてPrometheusを追加します。⁠Add Data Source」をクリックし,Prometheusを選択します図7図8)⁠

図7 初回ログイン時のダッシュボード

画像

図8 データソースの追加画面。絞り込みでPrometheusのみが表示されるようにしている

画像

Prometheusの設定画面に入りますので,⁠URL」へPrometheusのURLを入力し,⁠Save & Test」をクリックします図9)⁠テストが成功すればPrometheusの登録は完了です。

図9 Prometheusの設定画面。URLにPrometheusのURLを入力すれば良い

画像

データソースを追加すれば後はダッシュボードにPromQLを入力して任意のグラフなどを表示できます図10)⁠

図10 Node_Exporterの一部のメトリックをグラフ表示するダッシュボード。いずれもPromQLを実行した結果を出力している

画像

また,GrafanaはGrafana Labにアップロードされているダッシュボードをダウンロードして使用することもできます。

著者プロフィール

上野竜一(うえのりゅういち)

Ubuntu Japanese Teamが参加するイベントに出入りしている人。パンダが好き。株式会社 創夢所属。