センシングしたデータを保存するInfluxDBは前回ラズパイに構築したので今回はGrafana+telegrafを入れて設定していきます。おまけとしてChromografとvcgencmdを使ってCPU温度やCPU使用率・ARMのデータを取得してInfluxDBにインサートするところまでやっていきます。
InfluxDB+Grafanaをラズパイに入れておけばデータの受け皿とデータを表示する準備完了、次回からは自宅環境センシングでセンサーから取得したデータをInfluxDBで収集しておいてGrafanaのグラフで表示させることができます。とうことで次回からが自宅Iotセンシングの本番で今まではちょいつまらない構築作業なのですが、今回はデータをグラフ表示するのでグラフ好きな方は面白いかもしれません。(自分はグラフが大好きなんです♪)
- センシングしたデータをラズパイで保存するデータベースInfluxDBの設定
- InfluxDB+Grafana+telegrafでラズパイデータ可視化 カッコいいグラフを作ろう(現在このページにいます)
以下、赤枠の部分のグラフをWebでカッコよく表示してくれるGrafanaとラズパイのCPUやメモリの状態をセンシングするTelegrafをインストールして設定していきます。オマケで特に必要は無いのですがChronografもインストールしていきます。こちらはInfluxDBを管理するWebツール。
ラズパイにRaspbianをインストール、InfluxDBのインストールは前のページで書きました。その続きが今回の記事です。
Linuxに詳しくない方で環境センシングに興味がある方は枠の部分の「$」から右の部分をラズパイのシェルにコピペして作業していってください。(失敗例は飛ばしてくださいね。)
Grafanaインストール・設定
Webブラウザでカッコいいグラフや数値を表示してくれるツールです。InfluxDBと同じ会社のオープンソースソフトウェアなので親和性が高くすぐに使い始められます。
インストール
ラズパイの場合はARMv7をインストールする。
$ wget https://dl.grafana.com/oss/release/grafana-rpi_6.1.4_armhf.deb $ sudo dpkg -i grafana-rpi_6.1.4_armhf.deb $ rm grafana-rpi_6.1.4_armhf.deb
エラーが出た
ラズパイ4でgrafanaを入れたら以下のようなエラーが出ました。
Selecting previously unselected package grafana. (Reading database ... 41735 files and directories currently installed.) Preparing to unpack grafana_6.4.4_armhf.deb ... Unpacking grafana (6.4.4) ... dpkg: dependency problems prevent configuration of grafana: grafana depends on libfontconfig1; however: Package libfontconfig1 is not installed. dpkg: error processing package grafana (--install): dependency problems - leaving unconfigured Processing triggers for systemd (241-7~deb10u1+rpi1) ... Errors were encountered while processing: grafana
apt-getでlibfontconfig1をインストールしようとしたところ壊れているようなのでFixしました。
$ sudo apt-get install libfontconfig1 #壊れているようなのでFixする。 $ sudo apt --fix-broken install
もう一度dpkgするとちゃんとインストールできた。
デーモンリロードしてGrafana起動・自動起動設定
$ sudo systemctl daemon-reload $ sudo systemctl enable grafana-server Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service. $ sudo systemctl start grafana-server
Grafana起動してるか確認
$ systemctl status grafana-server ● grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vend Active: active (running) since Sun 2019-01-20 12:13:37 JST; 1min 10s ago Docs: http://docs.grafana.org Main PID: 1984 (grafana-server) CGroup: /system.slice/grafana-server.service └─1984 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --p 1月 20 12:13:49 raspberrypi grafana-server・・・省略
「Active: active」など、上記のように表示されたらOKです。終わらないので[Ctrl]+[c]を押すとプロンプトが表示されます。
GrafanaにWebブラウザからアクセスしてみる
Windowsからアクセスしてみます。ラズパイ本体からアクセスする場合はIPアドレスの部分をlocalhostにしてくださいね。
「http://192.168.31.53:3000」(192.168.31.53はラズパイのIPアドレスに置き換える)→「http://192.168.31.53:3000/login」にリダイレクトした。ID・Passはデフォルトでadmin・adminでした。
admin・adminを入力してログインすると、新しいパスワードの変更画面↓が出るのでパスワードだけ変更する。IDはadminになる。
ログインするとグラフのデータを設定するように言われますが、まだちゃんとしたデータが無いので先にラズパイの中身をセンシングしてくれるツールtelegrafを入れていきます。
telegrafインストール
グラフ表示するデータが欲しいのでラズパイのCPU・メモリの状態などをInfluxDBに送ってくれるtelegrafというGo言語で書かれていているメトリクスコレクタがあるので入れてみます。
telegrafは別途プラグインを入れればかなりの数のデータを収集してくれます。デフォルトの設定でデータを収集してくれるのはラズパイのcpu,disk,diskio,system,kernel,mem,processesなどをセンシングしてくれます。こまかな設定をすれば他のApacheやSSHなどのデーモンのアクセスや状態のデータをInfluxDBにインサートしてくれますのでラズパイをWebサーバーなどで運用している場合はかなり役立ちそうです。まずはデフォルトのままラズパイのCPUやメモリなどを表示させてみましょう。
Telegraf apt-getでインストール
こちらでやったほうがてっとり早いです。ラズパイの場合は以下のページのDebianの項目通りにやればOK。
$ sudo apt-get update && sudo apt-get install telegraf $ sudo service telegraf start $ sudo systemctl status telegraf
以下、手動でインストール。Telegrafは上のapt-getでインストールしたほうが早いです。
ダウンロード・インストール
メルアドと名前登録が必要です、以下からtarball(しかないので・・・)をダウンロード。
ダウンロードと解凍(ラズパイはarmhfのtarballを選びます。)
$ wget https://dl.influxdata.com/telegraf/releases/telegraf-1.11.2_linux_armhf.tar.gz $ sudo tar xzvf telegraf-1.11.2_linux_armhf.tar.gz
必要なものだけ移動する。
$ sudo mv telegraf/usr/bin/telegraf /usr/bin/telegraf #バイナリ本体 $ sudo mv telegraf/etc/telegraf /etc/telegraf #telegraf.confなどのファイル $ sudo mv telegraf/etc/logrotate.d /etc/telegraf $ sudo cp telegraf/usr/lib/telegraf/scripts/init.sh /usr/local/bin/telegraf.sh
起動
起動すると以下のようになる。
$ telegraf 2019-01-20T07:43:24Z I! Starting Telegraf 1.9.2 2019-01-20T07:43:24Z I! Using config file: /etc/telegraf/telegraf.conf 2019-01-20T07:43:24Z I! Loaded inputs: inputs.disk inputs.diskio inputs.kernel inputs.mem inputs.processes inputs.swap inputs.system inputs.cpu 2019-01-20T07:43:24Z I! Loaded aggregators: 2019-01-20T07:43:24Z I! Loaded processors: 2019-01-20T07:43:24Z I! Loaded outputs: influxdb 2019-01-20T07:43:24Z I! Tags enabled: host=raspberrypi 2019-01-20T07:43:24Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"raspberrypi", Flush Interval:10s
以下も同様に表示された。ただシェルで動いているので[Ctrl]-[c]すると終了してしまう。
$ telegraf -config /etc/telegraf/telegraf.conf
起動するかテスト↓
$ /usr/bin/telegraf --config /etc/telegraf/telegraf.conf --config-directory /etc/telegraf/telegraf.d 2019-01-19T22:10:06Z I! Starting Telegraf 1.11.2 2019-01-19T22:10:06Z I! Loaded inputs: net cpu disk processes system diskio kernel mem swap 2019-01-19T22:10:06Z I! Loaded aggregators: 2019-01-19T22:10:06Z I! Loaded processors: 2019-01-19T22:10:06Z I! Loaded outputs: influxdb 2019-01-19T22:10:06Z I! Tags enabled: host=Raspi3B2 2019-01-19T22:10:06Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"Raspi3B", Flush Interval:10s
起動スクリプト
リブートしたときなど自動で起動するようにする。
telegraf.service
(過去の内容はtelegraf.serviceの置き場所が間違えてました。以前は/lib/systemd/systemに置いたからうまく動かなかった、直接置いちゃいけないみたい。正しくは/usr/lib/systemd/system/の中に置く)
$ sudo mv telegraf/usr/lib/telegraf/scripts/telegraf.service /usr/lib/systemd/system/ $ sudo systemctl daemon-reload $ sudo systemctl start telegraf $ sudo systemctl enable telegraf Removed /etc/systemd/system/multi-user.target.wants/telegraf.service. Created symlink /etc/systemd/system/multi-user.target.wants/telegraf.service → /usr/lib/systemd/system/telegraf.service. $ sudo systemctl status telegraf #成功例 ● telegraf.service - The plugin-driven server agent for reporting metrics into I Loaded: loaded (/usr/lib/systemd/system/telegraf.service; enabled; vendor pre Active: active (running) since Sat 2019-07-20 15:37:47 JST; 8min ago Docs: https://github.com/influxdata/telegraf Main PID: 3838 (telegraf) CGroup: /system.slice/telegraf.service └─3838 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config- 1月 21 15:37:47 Raspi3B2 systemd[1]: Started The plugin-driven server agent for 1月 21 15:37:48 Raspi3B2 telegraf[3838]: 2019-07-20T06:37:48Z I! Starting Telegr $ sudo systemctl status telegraf #失敗例(telegraf.serviceを/etc/systemd/systemに置いていたのが原因) ● telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB Loaded: loaded (/etc/systemd/system/telegraf.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2019-01-21 11:24:47 JST; 23min ago Docs: https://github.com/influxdata/telegraf Main PID: 1775 (code=exited, status=217/USER) 1月 21 11:24:47 raspberrypi systemd[1]: telegraf.service: Unit entered failed state. 1月 21 11:24:47 raspberrypi systemd[1]: telegraf.service: Failed with result 'exit-code'. 1月 21 11:24:47 raspberrypi systemd[1]: telegraf.service: Service hold-off time over, scheduling r 1月 21 11:24:47 raspberrypi systemd[1]: Stopped The plugin-driven server agent for reporting metri 1月 21 11:24:47 raspberrypi systemd[1]: telegraf.service: Start request repeated too quickly. 1月 21 11:24:47 raspberrypi systemd[1]: Failed to start The plugin-driven server agent for reporti 1月 21 11:24:47 raspberrypi systemd[1]: telegraf.service: Unit entered failed state. 1月 21 11:24:47 raspberrypi systemd[1]: telegraf.service: Failed with result 'exit-code'.
Active:の部分がactiveで起動成功、failedで起動失敗。
サービス終了する場合
$ sudo systemctl disable telegraf
rc.localに記入して自動起動させる
上のやり方が正しいのでこちらは省略します。
正規のやり方でないかもしれませんが、以下のようにして自動起動させる。
$ sudo chmod +x /usr/local/bin/telegraf.sh $ sudo vim /etc/rc.local #以下の行をexit 0 の前に追加 /usr/local/bin/telegraf.sh start
これでリブートしてps aux | grep telegrafで確認したら起動してた。
起動確認
$ ps aux | grep telegraf pi 2024 1.5 3.8 844412 36372 pts/0 Sl+ 11:58 1:11 telegraf -config /etc/telegraf/telegraf.conf pi 3960 0.0 0.0 3852 532 pts/1 S+ 13:14 0:00 grep --color=auto telegraf
DB追加されてる
注:新しいバージョンのInfluxはこちらの↓Webページは廃止されています。表示されなくても正常です。
そしてWebブラウザのhttp://192.168.31.53:8083/にアクセスしてDatabasesを見るとtelegraf DBが追加されてる。
試しにcurlでtelegrafのcpuの中身を見て(Telegrafが収集したデータを表示させるクエリー)みると↓データがたくさん蓄積されていた。
$ curl -G 'http://localhost:8086/query?db=telegraf&pretty=true' --data-urlencode 'q=SELECT *
TelegrafプラグインのnetとInfluxDBを有効にする
Telegrafでラズパイのnetのアクセスの状態を収集させるように設定します。
以下のようにtelegraf.confを開いて「# [[inputs.net]]」の部分の先頭のコメントを外すだけです。
$ sudo vim /etc/telegraf/telegraf.conf #InfluxDBのクエリー 以下の左側のコメント「#」を外す [[inputs.influxdb]] urls = [ "http://localhost:8086/debug/vars" ] timeout = "5s" [[inputs.net]] #Newwork 左側のコメント「#」を外す $ sudo systemctl reload telegraf
以上でTelegrafの設定は完了です。
Telegrafが重い時は設定変更
ラズパイでInfluxDBを運用していて、Telegrafを使っていると重くなりました。
Telegrafというより、Influxdが300%を超えるCPU占有率になってしまってラズパイ3だと動かなくなる、ラズパイ4だとなんとか耐えますがInfluxDBにアクセスできなくなります。
そこで、Telegrafの設定を少し変えてみました。
$ sudo vim /etc/telegraf/telegraf.conf
[agent]
interval = “30s” collection_jitter = “20s” flush_interval = “10s”
上のように[agent]のインターバルやcollection_jitterの値を上げてあまり頻繁にデータを収集しないようにしました。
これでInfluxdはtopコマンドでCPU使用率が最大30%ほどになりましたが、しばらく様子見です。
Telegrafが収集したデータをGrafanaで表示してみる
先ほどGrafanaにログインした状態からの続きです。
Grafanaの設定
telegrafが集めてInfluxDBが保存しておいてくれたデータをGrafanaで表示してみます。
最初に「http://localhost:3000」にアクセスすると以下のような画面が表示されていると思います。
設定するところはHTTPのURL「http://localhost:8086」かWifi内のパソコンからアクセスするときはラズパイのIPアドレスをlocalhostに置き換えます。
その他は、Databaseにtelegraf、ユーザー・パスワードはInfluxDBの設定時にコチラで設定したものです。
もし、他のページに行って設定ページが分からなくなった場合は左側の歯車アイコンを押して、InfluxDBを押しましょう。↓(InfluxDBがない場合は右上の緑色「Add data source」を押してデータソースの設定をしましょう。)
設定完了したら下にある「Save & Test」を押してうまくいくと「Data source is working」となる↓
グラフを作る
いよいよtelegrafが保存してくれたデータを表示してみます。まずは左の「+」を押してNew dashoboardを選択。
(グラフを作るのが面倒な場合・・・は、下のほうで作ったグラフをダウンロードできるようにしておきました。よかったらそれをご自分のGrafanaにアップして使ってください。)
グラフを押します。
「Panel Title」のEditoを選択。
すると以下のようにFROM部分とSelect部分を選択するとグラフが表示されました。
一つの表に複数のグラフを書きたい場合はAdd Queryを押して同じように追加していくと以下のようになります。
タイトルは左側のGeneralタブを押して変更可能。
最終的にこのようになって↓とりあえずの目標は達成!
下の「Grafana用jsonファイル(Raspi-test.json)」の項目でグラフをまとめてダウンロードできるようにしておきました。
Grafana専用 Blendstatプラグインを入れる
こちらのBlendstatプラグインは下のほうで紹介するGrafana用jsonファイル(Raspi-test.json)で使用するので入れておきましょう。
詳しい説明は以下のページにあります。
以下のようにスピードメーターのようなパネルを表示してくれます。
以下のように簡単にインストールして最後にGrafanaをリスタートさせます。
$ sudo grafana-cli plugins install farski-blendstat-panel installing farski-blendstat-panel @ 1.0.1 from url: https://grafana.com/api/plugins/farski-blendstat-panel/versions/1.0.1/download into: /var/lib/grafana/plugins ✔ Installed farski-blendstat-panel successfully Restart grafana after installing plugins . <service grafana-server restart> $ sudo service grafana-server restart
Blendstatを使う時はNew PanelのAddでBlendstatを選ぶと使うことができます。
CPUの温度や電圧などを取得してInfluxDBに投げる
Telegrafで取得していないラズパイのCPU温度や周波数・CPU電圧と電圧の状態をPythonで取得してグラフに表示させてみましょう。
この項目、CPUの温度や状態を取得する必要なければ特にプログラムを設置する必要はありませんので飛ばしてください。
vcgencmdコマンドでラズパイの状態を取得する
vcgencmdの使い方はこちらに詳細が書いてあります。
温度は/sys/class/thermal/thermal_zone0/tempの中にも数値がありますが、vcgencmdでも取得可能、実際に取得してみます。
$ cat /sys/class/thermal/thermal_zone0/temp 48312 $ vcgencmd measure_temp #CPU温度 temp=47.8'C
ラズパイの温度が上がりすぎる(85度くらい?)とシステムダウンするので温度は監視しておいたほうがよさそうです。
その他に以下のようにvcgencmdコマンドでラズパイの中の状態を取得できます。
$ vcgencmd measure_volts #CPUの電圧 volt=1.2000V $ vcgencmd measure_clock arm #周波数 frequency(45)=600000000 $ vcgencmd get_throttled #電圧の状態 throttled=0xd0000
cpuの電圧と周波数はほぼ決まっているのであまり参考になる数値は取れないと思いますが、データはたくさんあったほうがカッコいいグラフができるので取得しちゃいます。
ラズパイの電圧状態
「vcgencmd get_throttled」電圧の状態というのはラズパイの電源の電圧が足りているかどうかの状態を表します。0~5までの数字は自分が勝手に作ったもので、「0xd0000」などの16進数の数値がvcgencmd get_throttledを打つと「throttled=0xd0000」などと返ってくる。3~5(0x50005~0x80008)になるとラズパイの状態がヤバイことになっているということです。以下のようになります。
- 0:0xd0000 ????
- 1:0x0 正常
- 2:0x50000 過去に低電圧状態になった。今は正常
- 3:0x50005 低電圧!
- 4:0x80000 熱でクロックダウン
- 5:0x80008 今現在熱でクロックダウン
「0xd0000」というのは正常だと思うのですが?よくわかりませんでした。
上記vcgencmdコマンドの4項目を一定時間ごとにプログラムで打ってInfluxDBに投げるPythonプログラムを作っていきましょう。といってもプログラムは完成しているのでダウンロードして5項目ほどご自分の環境に変更設定・アップロードするだけです。
PythonのInfluxDBクライアント インストール
Pythonプログラムで使うInfluxDBにPythonから接続するためにInfluxDBクライアントモジュールをpipでインストールしておきます。
$ sudo pip install influxdb
これを実行するだけなので簡単ですね。
プログラムの置き場所を作る
プログラムを置いておく場所を決めます。仮に「/home/pi/script」の中に置くようにしましょう。
$ mkdir script #scriptというプログラムファイルの置き場所(ディレクトリ)を作る
今後作っていくセンサーのプログラムなどもこの場所に置くことにします。
Pythonプログラムをダウンロード
こちらのcpu.pyというPythonスクリプトをダウンロードしてお使いください。
プログラムは以下の方を参考にInfluxDBにインサートするように改造させていただきました。ありがとうございますm(_ _)m
InfluxDBのdatabaseとmeasurementなどの名前を決める
Pythonプログラムを実行する前に少しだけ環境に合わせて変更する箇所があります。上記のPythonプログラムcpu.pyをダウンロードしたら、8~10行目を確認してください。
以下の3行の中の「’」と「’」で囲まれている日本語が入っている5箇所を変更します。
client = InfluxDBClient(host='localhost', port=8086, username='ユーザー名', password='パスワード', database='DB名') measurement = 'テーブル名' tags = {'host': 'ラズパイ名'}
- database:DB名 → sensor #cpu.pyに書かれている文字
- measurement:テーブル名 → cpu
- username:ユーザー名 → root
- password:パスワード → xxxxx
- host:ラズパイ名 → raspi3B+
上記5箇所をご自分の環境に合わせて変更しましょう。
ユーザー名・パスワードの部分はアクセス制限で決めたユーザーとパスを設定します。
databaseはtelegrafのデータベースを使うとタグなどがかぶる場合があるので、独自にsensorというデータベースを作ってcpuというmeasurementを作ってそこにデータを置くことにします。
その他にタグとしてhostを作りました。これにラズパイの名前を記入してください。例として「raspi3B+」が記入されていますので変更してください。
influxコマンドでInfluxDBに入ってデータベース「sensor」を作成してmeasurementの「cpu」とデータを追加しましょう。sensor,cpuは別の名前でも構いません。その場合は後ほど紹介するGrafanaのjsonファイルの中のsensor,cpuも名前を変えてくださいね。
$ influx > CREATE DATABASE sensor > use sensor > INSERT cpu,host=test cpu_temp=45.025213452336,cpu_volt=1.2,arm=600.0
上記「cpu_temp=45.025213452336,cpu_volt=1.2,arm=600.0」は初期のダミーデータです。最初に少数点のあるデータをアップしておかないで整数をアップしてしまうとフィールドがinteger(整数)専用になってしまって小数点のある数値をアップするとエラーになるので最初のダミーデータが必要になります。このフィールドタイプを変更できないところがInfluxDBで問題になっているところ。
Pythonプログラムcpu.pyをテスト実行する
テストでシェルからcpu.pyを実行してみましょう。
$ python script/cpu.py #以下のように表示されればOK [{'fields': {'cpu_temp': 59.6, 'cpu_volt': 1.2, 'arm': 600.0}, 'tags': {'host': 'raspi3B+'}, 'measurement': 'cpu'}]
もしエラーになった場合はエラー内容をよく見てdatabaseやmeasurementの指定などが間違っていないか確認しましょう。
/proc/statでCPUの状態取得可能
さらに以下のようにすればCPUの状態を詳細取得できますが、すでにTelegrafのほうであらかた取得しているようなので使わないことにします。
$ cat /proc/stat | grep cpu cpu 5553245 0 484899 22060211 169663 0 5483 0 0 0 cpu0 1335895 0 116669 5500712 57595 0 3205 0 0 0 cpu1 1412327 0 122902 5517073 34319 0 722 0 0 0 cpu2 1405978 0 122525 5519048 37900 0 762 0 0 0 cpu3 1399045 0 122803 5523377 39848 0 794 0 0 0
cronで一定時間置きにプログラムを実行させる
試しにPythonファイルを実行してうまくいったら以下のようにCronで一定時間置きにプログラムを実行させておきましょう。例↓として1分置きに実行させています。5分おきの場合は以下の「1」を「5」に置き換えて追加してくださいね。
$ crontab -e #以下の行を追加 */1 * * * * /usr/bin/python /home/pi/script/cpu.py
以上でPythonプログラムの設定は完了です。あとは完全放置でcronが勝手にファイルを実行していってデータを蓄積してくれます。
GrafanaのRaspiグラフ
今までの作業を全て実行していくと最終的に以下のようになりましたのでよかったらダウンロードしてjsonファイルをアップして簡単にラズパイのグラフを表示させてみてください。
Grafana用jsonファイルのダウンロード
以下のjsonファイル(Raspi-test.json)をダウンロードしてあなたのラズパイで試してみてくださいね。
ダウンロードしたらファイルの一番下から3~4行目にある以下の2行を編集しましょう。
"title": "Raspi-test", "uid": "test-uid",
- Raspi-test:好きなグラフページの名前
- test-uid:ランダムな文字列(半角英数字)
両方共編集しなくても大丈夫ですが、好みで変更してください。uidは一意なランダムな文字列をGrafanaが作るようで、URLの一部です。
http://localhost:3000/d/test-uid/raspi-test
のようになります。
jsonファイルのインサート方法
ダウンロードしたjsonファイル(Raspi-test.json)のインサート方法を説明します。
Gurafanaの画面で左上のほうの「+」をマウスオーバーするとCreate項目が出てきて一番下の「Import」を押します。
以下の画面になるので「Upload.json File」を押して先程ダウンロードしたjsonファイル(Raspi-test.json)ををアップロードします。もしくはjsonファイルの中身を全てコピーして「Or paste JSON」に貼付け後「Load」ボタンを押す。
以下のような画面になりますが、Name・uidともに一意な文字列(他に無い名前)でないといけないので以下のような「・・・already exists」エラーになった場合はNameやuidを変更しましょう。
またFolderはデフォルトでGeneralになっていますが、下の階層に保存したい場合はフォルダーを作って保存することもできます。
いらない項目の削除方法
jsonファイルをインサートしてしばらく(10分程度)様子をみているとデータが表示されていきます。もしデータが表示されない部分は「No data points」になります。それといらないグラフは削除していきましょう。
以下のようになっていますので、タイトル部分、例では「Panel Title」をクリックすると操作できるようになります。
一番下のRemoveを押すとグラフを削除できます。
グラフページ・グラフを作成・変更したら保存しておこう
グラフページやグラフを変更した場合は保存しておかないと、リロードしたら以前の設定にもどってしまいます。
右上にあるフロッピーディスクアイコンを押す。↓
Save changes画面が出るので「Save」ボタンを押す。どういう状態で変更したのかメモすることも可能ですが空欄でも可能。
以上、これでラズパイは完璧とまではいかないまでもある程度は可視化できた気がします。
Chronografを使ってみる
こちらはInfluxDBをWebで操作するツール。センシングするだけだったら特にインストールする必要はないので読み飛ばしてください。もしInfluxDBをより深く知りたい場合は入れておいて損はないと思います。
Webでコチラのページでhttp://127.0.0.1:8083/にアクセスして操作できるツールがInfluxDBを入れた時に使えましたが、開発終了とのことで今後はChronografに移行するようです。
インストール
Shellで以下のようにインストールして終わりです。
$ sudo apt-get install chronograf
初期設定
http://localhost:8888/にアクセスすると以下のようなページに。最初の初期設定です。
アクセスできたら設定していきます。UsernameとPasswordはコチラのInfluxDBのアクセス制限で設定したユーザーとパスワードを入れて、その他はそのままでOK。
これからいくつか聞かれます。この設定↓ダッシュボードに表示させるグラフのソースを選ぶ設定、最初はSystemしかないと思いますので「S」を選びます。
Kapacitorの設定は特に使わないのでそのままでContinueを押す。
なにやら警告がでてるけど構わずに設定を完了させました。
InfluxDB操作
冠アイコンでDB作成・DBのポリシーやデータの消費期限など設定できます。Usersでユーザーの追加削除も可能。
Chronographは機能が多くてシンプルではないので、いまいち使い方がわかりませんでした。理解すればかなり使えそうなツールです。
Status画面↓これはよくわかりませんでした。InfluxDataのニュースとかかな?
ラズパイの状態をグラフ表示
ChronographでもTelegraphが収集したデータを表示することができます。左側の目玉アイコンでraspberrypi(自分でつけた名前)を押すと、
以下のようなグラフが表示されます。
その他に表アイコンを押すとApacheやDockerなどが表示されて、Telegrafで設定完了していてリンクを押すとグラフが表示されます。
Apache(Webサーバー)はラズパイに入れてない+Telegraphで設定していないのでなにも表示されませんでした。↓
唯一グラフが表示されたのはラズパイのCPUやDiscの状態をグラフにしてくれるSystemでTelegrafが集めてくれたデータを表示することができました。(Networkは設定して無い時)
こちらのグラフ↓もカッコいいですね♪
このグラフのクエリーを参考に上のGrafanaのRaspiグラフを作りました。
以上、Chronografはまだ使いこなせていませんのでもっと便利な使い方もあるかもしれません。
次回から本格的に自宅環境センシング始めます♪
ここまで読んでいただいて設定されたかた長々とお疲れ様ですm(_ _)m
今回まではあまり面白みのないDBのインストールやらグラフツールのインストールなどでしたが、次回からは実際にセンサーを買ってきて、センシングしたデータをラズパイのInfluxDBに入れていきます。
まずは5千円ほどで買えるWeathernews WxBeacon2を使ってセンシングしたデータを取得してInfluxDBにインサートしていきましょう。
コメント