はじめに
前の記事で、Raspberry Pi上に InfluxDBと Chronografをインストールし、Node-REDのノードをつかってinfluxDBに格納したデータを、chronografをつかって可視化する試みを行い、とりあえず動作しました。
しかし、chronografは簡単ではあるものの、用意されているグラフの種類が少なく、またカスタマイズの自由度も低い事、特に折れ線グラフの縦軸を左右別々に出来ない事などの制約もあり、限界があります。 今回は、更に自由度の高い可視化が可能な grafanaを同じraspberry pi上にインストールして、可視化のレベルを上げる試みです。
Grafanaのインストール
リポジトリのGPGキーを取得します。
$ curl -sL https://packages.grafana.com/gpg.key | sudo apt-key add -
OK
リポジトリを追加します。
$ echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
deb https://packages.grafana.com/oss/deb stable main
追加したリポジトリに対するUpdateを実行します。
$ sudo apt update
Grafanaをインストールします。
$ sudo apt install grafana
サービスを起動し、Boot時の自動起動も設定します。
$ sudo systemctl unmask grafana-server.service
$ sudo systemctl start grafana-server
$ sudo systemctl enable grafana-server.service
ブラウザから確認
これで、grafanaがインストールされ、サービスも起動しているので、ブラウザから確認します。ポート番号は、3000です。下記の画面が出れば、ここまではOKです。
最初は、usernameおよび passwordともに、'admin'で入力すると、パスワードの変更を求められるので、新しいadminのパスワードを二回入力します。正常に変更できれば、その旨のメッセージがでた後、次の画面になります。
Grafanaから、influxdbのデータベースを接続する。
Data Sourcesのメニュー ("Add your first data soruce")から、同じRaspberry Pi上に格納してある influxdbのデータベースを登録します。
ここで、influxdbを選択し、下記の設定画面で、URLとデータベース名を入力します。現時点、前回作成したInfluxDBのデータベースは、influx_iot01という名称で、ユーザーは登録していないため、user名とpasswordは空白のままです。
ここで、Save & Testを実行すると、データベースが接続され、以下の表示が出ます。とりあえず、データベースへの接続は成功したようです。
"Back"で戻って、最初の画面を見ると、Data Sourceのところに、"Complete"と表示されているのが分かります。
次は、Dashboardを作ります。
あーだこーだ
実際に触りながら、あれこれ試行錯誤すれば希望の可視化はできます。それほど、トリッキーな操作はありません。
とりあえず
こんな感じのDashboardができました。
Dashboardを作成するにあたり、Chronografとの違いについて、いくつか感じた事を書いておきます。
-
Grafanaの、グラフ種類は豊富。ヒートマップもあります。また、Pluginで追加もできるようです。
-
Grafanaは、Y軸を左右2軸で描くことが可能。軸の選択方法は少し迷いますが、線グラフの色を指定するアイコンをクリックすると表示される 'Y-Axis'というタブの中に、右側のY軸を使うかどうかを指定するボタンがあります。また、表示するデータ列の名前の、aliasが正しく出来ていない場合(複数の軸が同じ名前で表示されている時)は、片方を右側に移動すると、もう一方も付いてきてしまいます。大分悩みました。
-
Grafanaは、折れ線のプロパティー設定が多くできます。Null値を線で繋ぐか、繫がないとか、値にマーカーを付けるかどうかなど。
-
Grafanaは、タイムレンジの簡単設定がより多くの種類でできます。年を超えた表示設定もありました。
-
Grafanaは、単位の表示に様々な単位(温度とか容量とか・・・)があらかじめ用意されているので便利。
とはいえ、Chronografでも、基本的な事は出来るので、凝らなければ、Chronografでも良いかな?という気もしました。
おわりに、
とりあえず、取得したデータを蓄積して可視化(表示する)事は出来ましたが、まだ、何も解析には至っていません。Chronografでは、計算式を入れて判断処理をするのは無理っぽかったのですが、Grafana上では、そのような演算結果を基にしたアラートもできるように見受けられます。 解析・分析処理は、またこの次に試してみます。