[InfluxDB]Node-REDとの連携

前提条件: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 ...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする