はじめに
influxDBとは
- オープンソースの時系列データベース(Time series database)の1つ
- 時間を軸としたデータ収集に特化している
- センサー値や温度などの、時刻によって刻々と変化するデータを蓄積するのに使う
Grafanaとは
- ログデータを可視化するためのツール
- influxDBやPrometheusなどと組み合わせて使う
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
sudo apt update & 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'
何回か上記コマンドを実行して、時系列データとして見れるようにしておく
保存先を外付けSSDに変更
起動メディアはSDカードなので、書き込み耐久に不安がある
DBを外付けSSDに設定して、そっちに書き込むようにする
外付けSSDはex-ssd
としてマウント済みとする
vim /etc/influxdb/influxdb.conf
[
:
dir = "/mnt/ex-ssd/var/lib/influxdb/meta"
dir = "/mnt/ex-ssd/var/lib/influxdb/data"
wal-dir = "/mnt/ex-ssd/var/lib/influxdb/wal"
:
]
パーミッションで怒られる時は外付けドライブのアクセス権限を変更する
sudo chmod -R +rwx /mnt/ex-ssd
influxdb を再起動すれば外付けSSDに書き込みを行うようになる
Grafanaのインストール
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install -y grafana
sudo systemctl unmask grafana-server
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
RaspberryPiのIP:3000
にアクセスする
以下の画面が表示されたらインストールできてる。
初回ログイン
- username : admin
- password : admin
- パスワードはさっさと変更する
保存先を外付けSSDに変更
vim /etc/default/grafana-server
[
:
LOG_DIR=/mnt/ex-ssd/var/log/grafana
DATA_DIR=/mnt/ex-ssd/var/lib/grafana
PLUGINS_DIR=/mnt/ex-ssd/var/lib/grafana/plugins
:
]
GrafanaとinfluxDBをつなぐ
Configuration(ギアアイコン) -> Data Sources -> Add data source -> influxDB
以下のように設定、指定のない項目はデフォルトのまま
項目 | 設定 |
---|---|
name | HomeDB |
URL | http://localhost:8086 |
Database | HomeDB |
Grafanaパネルの作り方
Create(+アイコン) -> Dashboard -> Add new panel
項目 | 設定 |
---|---|
FROM -> select measurement | ElectricPower |
SELECT -> field | Power |
ALIAS BY | ElectricPower |