Raspberry Piでデータの可視化をしてみる[Grafana]


Raspberry PiはLinuxベースのOSを乗せられる上に、ひと通りのセンサーが積まれていたりGPIOで容易にモジュールを接続できたりと、何かを測定するのにとても便利です。

csvやJsonなどテキスト形式のファイルに出力されることも多いと思いますが、せっかくのLinux環境なのでラズパイ内でデータの可視化ツールを動かせたら便利そうだなと考えました。

環境

Raspberry Pi 3B+/4B (Raspbian GNU/Linux 10 (buster) armv7l )

DockerでデフォルトでインストールされるGrafanaは記事執筆時点(2021/03/15)で7.4.3です。

準備

Dockerが入っていない場合はインストールしましょう。

$ curl -sSL https://get.docker.com | sh
$ docker -v
Docker version 20.10.5, build 55c4c88

実行

いちいちsudoをつけて実行するのは煩わしいので、ログインユーザをgroupに入れて権限を与えておくと良いと思います。

sudo docker run -d -p 3000:3000 grafana/grafana

これでlocalhost:3000にアクセスするとこのような感じでみることができます

私の場合はさらに、
- Grafanaでcsvを読み込むためのプラグインを導入したい
- ローカルにあるファイルをDockerコンテナ内から参照(マウント)したい
という2点をクリアしたかったので、以下のように追記して実行しました。

sudo docker run -d  -p 3000:3000 --name=grafana  -e "GF_INSTALL_PLUGINS=marcusolsson-csv-datasource" -v /home/pi:/home  grafana/grafana

Grafanaを操作する

ログインについて

初期状態ではID/PASSはadmin/adminになっています。継続的にコンテナを運用するならば入力後に変更しておくと良いでしょう。

データソースの選択

このバージョン(7.4.3)においては
Configuration(右側の歯車マーク)->Data Sources->利用するプラグインの選択('csv'を検索)->LocalファイルPathを入力
といった手順でソースを読み込みます。
この場合のPathはDocker内にマウントしているソースファイルの場所になります。
(私の例では/home/result.csv)

ダッシュボードの作成

データソースが読み込めたら左の+パネルよりDashboard->Add new panelと進み、
先ほど読み込んだcsvがデフォルトで表示されているはずなので、csvのヘッダー行に指定している要素を入力していきます。

今回私が使ったデータは自宅のWifiのDL時の速度を計測したもので、
- 日時と日付が入力されているdateのカラムをTime
- 実際の測定値が入ったdownloadのカラムをNumber
でそれぞれ読み込みSwitch to table viewをクリックすると
Y軸、X軸に対応して値がグラフが出力されます。

なお、Edit画面右側の方でグラフの種類や軸(Axis)の調整ができます。
V7.4からはフォーカス時の横棒表示が使いやすくなったりしているみたいです。

一度作成したpanelはドラッグ操作で細かい時間軸での表示などができます。

また、作成したダッシュボードはSave後、左上のShareボタンで(公開環境であれば)リンクを作成することができます。スマートフォン環境にも最適化された表示がされるので便利です。

issue

  • 常に最新のデータを表示させるためにはどうしたらええんや...? ->last〇〇 で指定すると良さそう
  • メトリクスの自動送信とかしたい

ちなみに

Google先生で検索してみると、 Grafanaの他には、

代替案 Grafana
Datadog. ...
Splunk. ...
logstash. ...
Graylog. ...
Fluentd. ...
Prometheus. ...
Nagios Log Server. ...
Scalyr.

のような感じでデータ可視化ツールがあるよと教えてくれました。

この中のいくつかは今回活用したGrafanaのようにDockerイメージが提供されていて同じ使い勝手で利用できるものもあるかと思います。
(ただし、SplunkのようにARMv7用のイメージが提供されていなかったりするので注意)
それぞれのツール同士を連携させる方法もあったりしますのでご自身の好みで色々遊んでみると楽しいかと思います。
最近ではGoogle Data Studioも俄かに流行の兆しを見せていて、一層導入のハードルは下がってい流のではないでしょうか。こちらはBig Queryやメールへのメトリクス画像送信など自社サービスとの連携も強力です。

それでは良いビジュアライズライフを!

参考にした記事