RaspberryPi4 influxDBとGrafana編


はじめに

influxDBとは

  • オープンソースの時系列データベース(Time series database)の1つ
  • 時間を軸としたデータ収集に特化している
  • センサー値や温度などの、時刻によって刻々と変化するデータを蓄積するのに使う

Grafanaとは

  • ログデータを可視化するためのツール
  • influxDBやPrometheusなどと組み合わせて使う

influxDBのセットアップ

インストールと起動確認

sudo apt install influxdb
curl -sl -I http://localhost:8086/ping

ping返ってきたらとりあえず動いてるはず
SHOW DATABASEを送って、空なのを確認する。(DBはまだ追加していないので)

curl http://localhost:8086/query --data-urlencode "q=SHOW DATABASES"
 {"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"]]}]}]}

データベースはまだ作っていないので、こんな感じに返ってきたらOK

データベースの追加

HomeDBが作りたいデータベース名

curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE HomeDB"
curl http://localhost:8086/query --data-urlencode "q=SHOW DATABASES"
 {"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"],["HomeDB"]]}]}]}

SHOW DATABASEして、追加されていればOK

お試しデータの登録

curl -i -XPOST "http://localhost:8086/write?db=HomeDB" --data-binary 'ElectricPower,hard=RasPi4 Power=100'

何回か上記コマンドを実行して、時系列データとして見れるようにしておく

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
sudo apt update && sudo apt install -y grafana
sudo systemctl unmask grafana-server.service
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service

RaspberryPiのIP:3000にアクセスする
以下の画面が表示されたらインストールできてる。

初回ログイン

  • username : admin
  • password : admin
  • パスワードはさっさと変更する

GrafanaとinfluxDBをつなぐ

Configuration(ギアアイコン) -> Data Sources -> Add data source -> influxDB

以下のように設定、指定のない項目はデフォルトのまま

項目 設定
name HomeDB
URL http://localhost:8086
Database HomeDB

Save & Testを押して、以下の表示が出たらOK

Grafanaパネルの作り方

Create(+アイコン) -> Dashboard -> Add new panel

項目 設定
FROM -> select measurement ElectricPower
SELECT -> field Power
ALIAS BY ElectricPower

こんな感じで表示されたらOK

おまけ:influxDBの最新版を入れる

aptで入れると最新版が入らなかったのでwgetで最新版を入れる方法
新しいバージョンを入れるとコマンドラインからデータベース操作できて便利です!

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10_linux_armhf.tar.gz
tar xvfz influxdb-1.7.10-1_linux_armhf.tar.gz
sudo mv influxdb-1.7.10-1/etc/influxdb /etc/influxdb #etc,usr,varがあるので全て移動する
sudo mv influxdb-1.7.10-1/etc/logrotate.d/influxdb /etc/logrotate.d/influxdb
sudo mv influxdb-1.7.10-1/usr/bin/* /usr/bin/
sudo mv influxdb-1.7.10-1/var/lib/* /var/lib/
sudo mv influxdb-1.7.10-1/var/log/* /var/log/
sudo mv influxdb-1.7.10-1/usr/lib//* /usr/lib/
sudo mv influxdb-1.7.10-1/usr/share/man/man1/* /usr/share/man/man1/