前回の記事で Raspberry Pi に Fluentd + Elasticsearch + Kibana の環境ができたので、練習として Raspberry Pi の CPU 温度、電圧、クロック数をグラフ化してみる。

各数値を Fluentd で Elastisearch に送る

参考サイトのスクリプトを参考に、各数値を Fluentd で Elastisearch に送るスクリプトを書く。

$ vi temp_volt_freq.sh
#!/bin/bash

temp=`vcgencmd measure_temp | sed -e "s/temp=//" -e "s/'C//"`
volt=`vcgencmd measure_volts |sed -e "s/volt=//" -e "s/V//"`
freq=`vcgencmd measure_clock arm | sed -e "s/frequency(45)=//"`
json={\"rasp_temp\":$temp,\"rasp_volt\":$volt,\"rasp_freq\":$freq}
echo $json | /home/pi/.anyenv/envs/rbenv/shims/fluent-cat log.temp_volt_freq

下記コマンドで実行権限を追加して、

$ chmod +x temp_volt_freq.sh

cron で 5 分ごとに実行する。

$ crontab -e
# 下記行を追加
*/5 * * * * ./temp_volt_freq.sh

参考

Kibana でグラフを作る

Index Pattern を作る

まずは、 Index Pattern を作る。

Kibana のトップページ右下の「Index Patterns」をクリックして、

「Index Pattern」には「*」を入力して、続いて「Nex step」をクリックして、

「Time Filter field name」には「@timestamp」を入力して、続いて「Create index pattern」をクリックする。

「Filter」に「rasp」と入力して、「rasp_temp」「rasp_volt」「rasp_freq」が取れていることを確認する。

グラフを作る

続いて、まずは CPU 温度をグラフ化する。

サイドバーの「visualize」をクリックして、コンテンツエリアの「Create a visualization」をクリックして、

グラフは「Line」を選択して、

「From a New Search, Select Index」は先ほど作った「*」を選択して、

「Y-Axis」はそれぞれ下記のように設定して、

  • Aggregation: Max
  • Field: rasp_temp

その下の「Buckets」から「X-Axis」を選択して、それぞれ下記のように設定して、

  • Aggregation: Date Histogram
  • Field: @timestamp
  • Interval: Auto

「Metrics」の上の「再生ボタン」をクリックすると、グラフができあがる。

このグラフは保存しておきたいので、画面最上部の「Save」をクリックして、適当に名前をつけて「Save」をクリックとグラフが保存される。

ダッシュボードを作る

続いてダッシュボードを作る。

上記のグラフ化の手順で電圧、クロック数をグラフ化しておいて、

サイドバーの「Dashboard」をクリックして、コンテンツエリアの「Create a dashboard」をクリックして、

コンテンツエリアの「Add」をクリックして、

グラフ化で作った3つのグラフを追加する。

このダッシュボードを保存しておきたいので、画面最上部の「Save」をクリックして、適当な名前をつけて保存する。


これでグラフをダッシュボードに保存するところまでできました。

いい感じです。