reyfox blog

reyfox tech info

CentOS grafana Linux prometheus

grafanaにCPU使用率及びメモリ使用率グラフを追加

投稿日:

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_ がほとんどとってきてくれているので、いろいろなグラフを簡単に作成することが出来ます。

-CentOS, grafana, Linux, prometheus

執筆者:

関連記事

CentOS7上でiperfを使いネットワークの速度を測定

iperf というソフトを使うと、ネットワークの速度を測定できます。主にLAN内の速度(スループット)を測るために使用します。 iperf のインストール yum install epel-relea …

CentOS7で内向き専用DNSサーバを立てる

内向きDNSとは、LAN内でだけドメイン名を解決できるDNSサーバを言います。今回は、LAN内だけでドメイン名を解決するDNSサーバを立て、デフォルトのDNSとして動作するように設定します。なお、内向 …

CentOS7上でUSB温度計で温度を記録してgrafanaでグラフ化する

AmazonでUSBで温度(室温)が図れるデバイスが売っていたのでこれをCentOS7で動いているNUCにつなげて温度をグラフ化してみたいと思います。 やりたいこと USBで温度を計測、その値をinf …

CentOS7の初期設定

CentOS7 を Intel NUC にインストールしましたが今の所家庭内ネットワークからのみの想定で、外部からのアクセスはすべてルータでフィルタリングしているため、利便性のため下記の設定を行います …

CentOS7にApacheをインストール

CentOS7はnetworkインストールで最小構成だと httpd(Apache)が入りません。しかし、yumコマンドで簡単にインストールすることが出来ます。 インストール yum install …