前提条件:Ubuntu22.04 Node-REDインストール済み
ポート開放(外部接続時のみ必要): 8086/tcp
1. InfluxDBのインストール(Ubuntu)
# リポジトリ追加
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/ubuntu ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
# インストール
sudo apt update
sudo apt install influxdb
# サービス起動&自動起動設定
sudo systemctl enable influxdb
sudo systemctl start influxdb
2. InfluxDBの初期セットアップ
(1) 動作確認
influx --version # バージョンが表示されればOK
(2) データベース作成
influx
# influxdbのプロンプトが出たら
CREATE DATABASE testdb;
最後に
SHOW DATABASES;
# "testdb" が表示されていればOK
exit
3. Node-REDにInfluxDBノードをインストール
Node-REDのWeb UIにアクセス
例: http://<サーバのIP>:1880
(1) パレットの管理
→ ノードを追加 → “influxdb” で検索
→ node-red-contrib-influxdb
をインストール
4. サンプルフローの作成
(1) injectノード
型:json
値例: { “温度”: 25.3, “湿度”: 60 }
(2) influxdb outノード
新規サーバ設定
URL: http://localhost:8086
データベース: testdb
Measurement(測定名): 例 env_data
(3) 配線
[inject] →[function]→ [influxdb out]
functionノードに以下を記載
msg.payload = { Ondo: 25.3, shitsudo: 60 };
return msg;
6. 記録の確認
influx
USE testdb;
SELECT * FROM env_data;
→ Node-REDから送信した値が表示されれば成功!
ちょっと寄り道
InfluxDBのデータベースとは?
- RDBでいう「データベース」とほぼ同じ役割
- データの保管先(複数作成可。用途やプロジェクトごとに分けて管理できる)
- 内部には「measurement」(テーブルのようなもの)があり、そこに時系列データを保存
データベースの操作(CLI)
データベース一覧表示
influx
SHOW DATABASES;
データベース作成
CREATE DATABASE <データベース名>;
-- 例: CREATE DATABASE testdb;
データベース削除
DROP DATABASE <データベース名>;
データベース選択
USE <データベース名>;
-- 例: USE testdb;
Measurement(テーブル)の管理
measurement一覧表示
SHOW MEASUREMENTS;
特定measurement内のデータを表示
SELECT * FROM <measurement名>;
-- 例: SELECT * FROM EnvData;
measurementの削除
DROP MEASUREMENT <measurement名>;
データの削除
特定条件でデータを削除
例:特定期間前のデータを削除
DELETE FROM <measurement名> WHERE time < now() - 30d
ユーザー・認証管理(必要に応じて)
ユーザー作成
CREATE USER <ユーザー名> WITH PASSWORD '<パスワード>';
ユーザーに権限付与
GRANT ALL ON <データベース名> TO <ユーザー名>;
認証モード有効化
/etc/influxdb/influxdb.conf で auth-enabled = true
してから再起動
sudo systemctl restart influxdb
Retention Policy(保存期間設定)
例:データを自動で30日後に削除したい場合
CREATE RETENTION POLICY "30days" ON <データベース名> DURATION 30d REPLICATION 1 DEFAULT
バックアップ・リストア
バックアップ
influxd backup -database <データベース名> /path/to/backupdir
リストア
influxd restore -database <データベース名> /path/to/backupdir
管理用Web UI
ChronografやInfluxDB2.xのUIを使うと、
ブラウザからDB/Measurement/Retention Policy/データ内容を簡単に操作できます。
実運用での注意点
- 用途ごとにDBを分けると、運用が楽(例:開発用・本番用)
- 定期的なバックアップを推奨v
- 不要データはRetention Policyや手動削除で管理
- データ量が多い場合、measurementやタグでの設計が重要
【まとめ:InfluxDB管理チートシート】
操作 | コマンド例 |
---|---|
DB一覧 | SHOW DATABASES; |
DB作成 | CREATE DATABASE testdb; |
DB削除 | DROP DATABASE testdb; |
DB選択 | USE testdb; |
Measurement一覧 | SHOW MEASUREMENTS; |
Measurement削除 | DROP MEASUREMENT EnvData; |
レコード削除 | DELETE FROM EnvData WHERE ... |
ユーザー追加 | CREATE USER ユーザー名 WITH PASSWORD 'pw'; |
権限付与 | GRANT ALL ON testdb TO ユーザー名; |
保持期間設定 | CREATE RETENTION POLICY ... |
コメント