
grafana+prometheusでサーバ監視をしグラフィカルなダッシュボードを作る
上記記事でgrafana+prometheusでダッシュボードを作成しました。
今回はここにCPU使用率とメモリ使用率を追加してみたいと思います。
なお、使用するバージョンは下記のものとなります。
prometheus Version 2.6.1
node_exporter Version 0.17.0
前回の記事でprometheusを起動している場合、すでに node_exporter も裏で動いていて情報が収集されています。
CPU使用率グラフの追加

まず、grafanaにログインしダッシュボードを開き、上の方の Add panel を選択します。
grafana のアドレスは、http://[サーバアドレス]:3000/ となります。

続いて、Graph を選択します。

今回は、Userが使っているCPUとSystemで使っているCPUを分けてグラフ化してみます。
Data Source を「prometheus」を選択し、Aに以下の文言を入力します。
rate(node_cpu_seconds_total{job="prometheus",mode="user"}[5m]) * 100
上記は、User が使っているCPUとなります。
次にBに以下の文言を入力します。
rate(node_cpu_seconds_total{job="prometheus",mode="system"}[5m]) * 100
General タブを押して、「CPU Usage」などと入力し、ダッシュボードに戻り、ダッシュボードを保存します。
以上でコア別のCPU使用率がグラフ化されました。
メモリ使用率のグラフを追加
CPUのときと同じように Add panel から Graph を選択します。
Data Sourceから「Prometheus」を選びAに以下の文言を入力します。
node_memory_MemTotal_bytes{instance="localhost:9100",job="prometheus"}
続いてBに以下の文言を入力します。
node_memory_MemTotal_bytes{instance="localhost:9100",job="prometheus"} - node_memory_MemAvailable_bytes{instance="localhost:9100",job="prometheus"}
Aはメモリトータルを表示、Bはメモリトータルから空きを引いたものを表示=使用率、となります。

以上で、上記のようなメモリ使用率のグラフが出来ました。
同じようにダッシュボードに戻りダッシュボードを保存します。
ディスクの空き容量をゲージ化する
ディスクの空き容量も同じようにグラフ化は出来ますが、ひと目でわかりやすいようにゲージを使ってみます。
Add panel から Singlestat を選びます。
Data Sourceから「Prometheus」を選び、Aに以下の文言を入力します。
node_filesystem_free_bytes{device="/dev/sda4",fstype="xfs",instance="localhost:9100",job="prometheus",mountpoint="/"}
上の文言では、/dev/sda4のマウントポイント / の空き容量を示しています。
環境によって変更してください。

以上で空き容量のゲージ化が出来ました。
おまけ: Swap領域の使用率を表示
現在ではメインメモリが多くなりSwapがほとんど使われなくなっていますが、Swapの情報も表示してみます。
Add Panel から Graph を選択し、Data Source に「Prometheus」を設定Aに以下の文言を入力します。
node_memory_SwapTotal_bytes{instance="localhost:9100",job="prometheus"}
次にBに以下の文言を入力します。
node_memory_SwapFree_bytes{instance="localhost:9100",job="prometheus"}
Cに以下の文言を入力します。
node_memory_SwapCached_bytes{instance="localhost:9100",job="prometheus"}
AがSwapのトータル、BがSwapのフリーサイズ、CがSwapのキャッシュサイズとなります。

上記のようにグラフが出来上がれば完成です。
データのソース元をチェックする
prometheus + node_exporter を起動しているといろいろなデータが取られています。
実際にどのようなデータが取られているかをチェックするには下記にアクセスします。
http://[サーバアドレスまたはIP]:9090/graph
-insert metric at cursor -の部分をクリックすると現在利用できるメトリックが表示されます。
基本的に prometheus_[なんとか] は prometheus 自体がとってきているもの、
node_[なんとか] は node_exporter がとってきているものとなります。
適当に選択して、「Execute」を押すと下のConsoleタブにメトリックが表示されるので、これを grafana 側に貼り付けるだけでグラフ化が可能となっています。
逆を言うとここにない項目は別な exporter を入れるか、influxDB などをデータソースにしてグラフ化する必要があります。
システム情報に関しては、node exporter の node_ がほとんどとってきてくれているので、いろいろなグラフを簡単に作成することが出来ます。