enebularとGrafanaでIoTのデータを可視化する方法(後編)

目次

前編

  • はじめに
  • Grafanaとは
  • システム構成
  • サンプルフロー
  • まとめ

後編

はじめに

この記事は、enebularで収集・蓄積したIoTのデータを、データ可視化ツールのGrafanaで可視化する方法の紹介の後編です。後編では、いよいよGrafanaを使ってデータの可視化を行います。

前編では、enebular(Node-RED)を利用してPostgreSQLにデータを蓄積する手順を確認しました。
前編を実行していなくても、PostgreSQL(やMySQLなどのデータベース)に蓄積されたデータがある方には、Grafanaでの可視化の手順は参考になるかもしれません。

Grafanaのデプロイ

前編でも書きましたが、GrafanaはDockerコンテナになっています。
これをそのまま、Herokuにデプロイできれば良いのですが、ちょっとした工夫が必要です。その手間を省いてくれている方がいました。

「さくっとGrafana on Heroku」(ユニファ開発者ブログ)

感謝感激ですね。ありがとうございます>ユニファ開発者ブログ!
それでは、このHeroku Deployボタンをそのまま利用させていただきます。

Deploy

このボタンを押すと、以下のような画面が表示されます。

“App name”に好きなアプリ名を入力して、”Deploy app”ボタンを押してください。GrafanaがHerokuにデプロイされます。

デプロイが成功すると、下の図のように”View”ボタンが表示されますので、クリックしてください。
ブラウザに新しいタブが開いて、Grafanaの画面が表示されます。




Grafanaログイン画面

Grafanaによるデータの可視化

いよいよ、Herokuの上でGrafanaが動き始めましたので、Postgresのデータを表示してみましょう。
手順は以下のようになります。

  1. Grafanaにログインする
  2. GrafanaをPostgresに接続する
  3. Grafanaのダッシュボード上でPostgresのデータをグラフ化する

これだけです。簡単そうですね!
では、順番に手順を見ていきましょう。

Grafanaにログインする

Grafanaにログインします。
“Email or username”、”Password”の入力が必要です。それぞれ、”admin”、”admin”と入力してください。
この手順は、先ほどの「さくっとGrafana on Heroku」のソースコードがあるgithub.comのREADME.mdに記載されています。

ログインすると、すぐに新しいパスワードの入力を要求されますので、新しいパスワードを設定してください(スキップできますが、しないでくださいね〜〜!)。

GrafanaをPostgresに接続する

では、GrafanaをPostgreSQLに接続します。
まずは、設定画面に入りましょう。
ログイン直後の画面の左側にメニューがあります。Configuration > DataSourceと選択してください(下図)。

“Add data source”というボタンが表示されるのでクリックしてください。

データソースの一覧が表示されますね。その中からPostgreSQLを選択します。

PostgreSQLの設定画面が表示されます。
ここで、前編の”フローを設定する”でメモしておいたHost、Database、User、Port、Passwordを入力します。
“TLS/SSL Mode”は”require”に設定してください。

さらに、画面下の方のPostgreSQLバージョンを”12″にします(2021年4月時点では、素直にHeroku Postgresを利用するとバージョンが12.6のようです)。

入力が終わったら、”Save & Test”のボタンを押してみて、エラーがなければ接続成功です(エラーがなければ、”Database Connection OK”の文字が表示されます)。

Grafanaのダッシュボード上でPostgresのデータをグラフ化する

データベースへの接続ができましたので、ダッシュボードを作成してグラフを可視化しましょう。
まずは、メニューからDashboard > Manageと選択します(下図)。

“New Dashboard”ボタンをクリックします。

“Add an empty panel”をクリックします。

下の図のような編集用の画面が表示されます。
下側のQueryタブで、表示するデータを編集できます。

FROM、Time column、SELECTを下図の通りに入力してください。他の箇所は変更の必要はありません。

  • FROM … memory_usage
  • Time column … ts
  • SELECT … Column:freemem, Column:totalmem, Column:memusage

SELECTの行数を増やす場合は、”+”ボタンを押して、Columnを選んでください。
値を入力する際には、GrafanaがPostgreSQLを読んで、候補の値を示してくれますので、クリックしているだけで設定ができるはずです。簡単ですね。

グラフが表示されたでしょうか? 

データを表示する日付の範囲は、下の図の線で囲んだ箇所を編集することで調整できます。

画面右上の”Apply”ボタンを押すと、設定が適用されて下図の画面になります。
この時点では、まだ保存されていませんので”Save”ボタンを押します。フロッピーディスクの形をしたアイコンが”Save”ボタンです。

ダッシュボードの名前を入力するように促されますので、好きな名前を入力してください。
ここでは、デフォルトの”New Dashboard Copy”のままSaveしています。

これでダッシュボードが保存されました。
Home画面に戻ると、”New Dashboard Copy”がちゃんと表示されていますね。

まとめ

以上で、「enebularとGrafanaでIoTのデータを可視化する方法」は終わりです。いかがだったでしょうか?
想像より簡単だったと感じてもらえれば幸いです。

この記事を応用して、いろいろなデータの収集・蓄積・可視化にチャレンジして見てくださいね!