INKBIRDから取得した温度・湿度データをGrafanaでモニターする
目次
はじめに
今回は“INKBIRDから取得した温度・湿度データをInfluxDBに記録する”でInfluxDBに取り込んだ温度・湿度データをGrafanaでモニターしてみます。なお、INKBIRDのセンサー値をInfluxDBに保存する部分については“INKBIRDから取得した温度・湿度データをInfluxDBに記録する”で記載していますので、ここでは説明を省きます。
全体構成
システム全体の構成を下記に記載します。
- 今回は Windows PCのUbuntu20.04 にインストールしたdockerを使い、grafanaとinfluxdbとchronografコンテナを起動します。
- Windows PC上のpythonで作成したスクリプトをWindowsのタスクスケジューラから定期的に起動し、INKBIRDのBluetooth温度湿度計からデータを取得し、influxdbにデータを登録します。
- grafanaコンテナでinfluxdbに登録されたデータをグラフ表示させます。
コンテナの作成
docker-compose.ymlの作成
- influxdb,chronografはdocker公式イメージhttps://hub.docker.com/_/influxdb 、https://hub.docker.com/_/chronograf のv.1.8.10を使用します。
- grafanaはGrafana Labsが公開しているgrafana-oss https://hub.docker.com/r/grafana/grafana-oss からv.8.5の最新版であるv.8.5.15 を使用します。なお、Grafana Labsが公開しているドキュメントMigrate from previous Docker containers versions に従い、grafana-ossのuser IDを"104"に指定しています。
- 各コンテナとも設定した情報がコンテナを削除した際に失われないように、ボリュームを指定しています。
コンテナの起動
コンテナを起動するためdocker-compose up
を実行します。するとgrafana-oss、influxdb、chronografコンテナのログが表示されます。ここでエラーが発生してコンテナが停止してしまう場合は、エラーメッセージを確認し対応します。
$ docker-compose up
<省略>
そして、ブラウザでhttp://localhost:3000/
にアクセスして、grafanaのログイン画面が表示されることを確認します。確認できれば、Ctrl+Cでコンテナを停止した後、docker-compose up -d
として起動しなおします。
$ docker-compose up -d
<省略>
GrafanaにInfluxDBのデータを表示させる
Grafanaのadminパスワードを設定する
再度ブラウザでhttp://localhost:3000/
にアクセスするとログイン画面が表示されるので、ユーザ名admin
、パスワードadmin
でログインします。ログインするとパスワードの変更画面が表示されるので、パスワードを変更します。
GrafanaのデータソースにInfluxDBを登録する
- 左側メニュから[Configure]>[Data sources]を選択します。
データソースの設定
- 表示されたページの右上にある[Add data source]ボタンを押し、表示されたメニューからInfulxDBを選択します。
InfluxDBの選択
- InfluxDBの設定メニューが表示されるので、IfluxDBに設定した情報を入力します。
InfluxDBの設定(1)
InfluxDBの設定(2)
- [Save & test]ボタンを押します。“Data source is workind"と表示されることを確認します。表示されない場合、設定内容に間違いがないか確認します。
設定の保存とテスト
Dashboardを作成する
- [Create]>[Dashboard]を選択します。
ダッシュボードの作成
- [Add a new panel]をクリックします。
パネルの追加
- Query欄でInfuxDBから表示するデータを指定します。そして、右側の各グラフ設定メニューを設定し、[Apply]ボタンを押します。
パネルの設定
- 上記を繰り返し最終的に下記のようなダッシュボードを作成しました。
設定後のダッシュボード
最後に
今回はGrafanaにInfluxDBを連携させ、Inkbirdの温度・湿度データを表示するダッシュボードを作成しました。 Grafanaはアラートの設定ができます。アラートの一例としてGmailにメールを送信する設定をしてみようと思います。