前回の記事で 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」をクリックして、適当な名前をつけて保存する。
これでグラフをダッシュボードに保存するところまでできました。
いい感じです。