みかんのゆるふわ技術ブログ

Raspberry PiやIoT関係のことを書き残していきます

Raspberry Piでセンサー情報グラフ化~その1 InfluxDBとGrafanaをインストール

ふつうのパソコンと違い、Raspberry Piにはピンヘッダが出ており、いろんな市販のセンサーを接続できます(センサーの接続については別の記事で紹介しています)。

今回は、取り込んだセンサー情報をカッコよく表示してくれるGrafanaという可視化ツールと、データーベースであるInfluxDBをインストールしてみます。 こちらのブログで紹介されている手順をほぼなぞっています。

simonhearne.com

最終的に、このようなダッシュボードの作成を目指します。

f:id:kimura_khs:20200820180343p:plain:w480

InfluxDB

InfluxDBは、センサーデーターのように時系列のデータの格納に特化したデーターベースです。InfluxDataという会社が開発しています。 有償版もありますが、オープンソース版を無料で使うことができます。

www.influxdata.com

データーベースというとPostgreSQLやMySQL、オラクルなどが有名ですが、InfluxDBはそういった汎用のリレーショナルデーターベースではなく、時系列データを扱うのに特化したものになっています。詳しくは、こちらの記事をぜひご覧ください。

www.mikan-tech.net

早速Raspberry Piにインストールしてみましょう。

InfluxDBのインストール

まずInfluxdbのリポジトリを登録します。

$ wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
$ source /etc/os-release
$ echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

アップデートし、influxdbをインストールします。

$ sudo apt update && sudo apt install -y influxdb

influxdbを起動し、再起動時に自動起動するように設定します。

$ sudo systemctl unmask influxdb.service
$ sudo systemctl start influxdb
$ sudo systemctl enable influxdb.service

以上で、InfluxDBのインストールは完了です。

InfluxDBのユーザーとデーターベース作成

続いて、データを投入したり取り出したりできるように、InfluxDBにデーターベースとユーザーを作成します。 InfluxDB内に複数のデーターベースを持つことができ、またLinuxのユーザーと独立してInfluxDBのユーザーを管理できるので、データ操作に対する細かい権限管理ができるようになっています。 今回は、sensorというデーターベースとgrafanaというユーザーを作成してみましょう。

influxコマンドでInfluxDBの操作ができます。

$ influx
Connected to http://localhost:8086 version 1.8.1
InfluxDB shell version: 1.8.1
> 

InfluxDBのシェルが出てきます。ここで、次のようなコマンドを打ちましょう。

> create database sensor
> use sensor
Using database sensor
> create user grafana with password 'yourpassword' with all privileges
> grant all privileges on sensor to grafana
> show users
user    admin
----    -----
grafana true
> exit

exitで、influxコマンドを終了できます。

Grafana

Grafanaは様々なデータベースに対応したオープンソースのデータ可視化ツールです。InfluxDBにも対応しています。 棒グラフや折れ線グラフをはじめ多彩な表現力があり、マウス操作でダッシュボードが簡単に作れるのが便利です。

Grafanaのインストール

まずはGrafanaリポジトリを登録します。

$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
$ echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list

aptでインストールします。

$ sudo apt update && sudo apt install -y grafana

grafanaを起動し、再起動時に自動起動するように設定します。

$ sudo systemctl unmask grafana-server.service
$ sudo systemctl start grafana-server
$ sudo systemctl enable grafana-server.service

これでGrafanaにhttp://raspberrypi.local:3000でアクセスできるようになりました。 早速アクセスしてみましょう。

f:id:kimura_khs:20200813124830p:plain

最初にログイン画面が表示されます。 初期ユーザ名はadmin、パスワードもadminです。

f:id:kimura_khs:20200813124832p:plain

初回ログインすると、パスワードの変更を求められます。 変更して、このような画面が出ればインストールは成功です。

続きはこちら

センサーの値を読み取って、InfluxDBにデータを入れていきます。続きはこちらからどうぞ。

www.mikan-tech.net