Raspberry Pi Zero 2 Wを使う その6 InfluxDBのバージョン

概要

前回までいろいろ寄り道をしていましたが、そろそろ構築に戻ります。裏でいろいろ検証をしていたのですがInfluxDBのバージョンをどうしようか悩んで最新版に上げてみました。

InfluxDBのバージョン

Debian -- sid の influxdb パッケージに関する詳細
Scalable datastore for metrics, events, and real-time analytics

Raspberry Pi OS(Raspbian)には標準でInfluxDBが収録されています。

  • 1.6.7(2019年リリース?)

しかしながら、さすがに古すぎるバージョンです。

InfluxData - Package Repository

最新パッケージは上記にあります。

2023年11月にリリースされたinfluxdb2_2.7.4-1と、2023年4月にリリースされたinfluxdb_1.8.10があります。現在バージョン1系と2系があり、中身が結構違っています。

また、1系はパッケージが5つあるのですが、2系はパッケージが2つかありません。サポートが減っているのがi386とarmの32ビットです。そしてRaspberry Piはarmのパッケージを使っているので、2系を使う場合には64ビットOSでしかサポートしていません。

バージョン1系と2系の違い

とりあえず1系の検証はある程度したので、2系の検証もしてみたいと思います。1系で気になっていたのは従来のデータベースに似せている管理のため、create databaseをしてからそのデータベースにcreate userをしてあげる必要があります。

ここの処理がコマンドラインなのでGUIで設定したかったんですが、1系は単純な管理用GUIが最初はあったのですが、どんどんグラフ表示などの機能が増えて別プログラムへ分離されました。それを入れても良かったのですがGrafanaの機能とかぶるのと、データベースだけ入れたいのにちょっと大げさなのでいれていませんでした。

あとは内部構造がまるっきり作り替えていて、1系と2系で互換性は低いです。1系は既存のデータベースになるべく近づけるようにInfluxQLというSQLっぽい構文でした。2系はよりFluxという独自形式に変更になっています。一応InfluxQLが使えるオプションがあるのですが、パフォーマンス的にはFluxを利用したほうが好ましいとのことです。

そして、1系だと分離したGUI画面が2系では内蔵に戻っています。いろいろ右往左往しつつ、全部を最適化して作り直したのが2系のようでした。

認証も1系のユーザー名とパスワードのオールドスタイルから、2系では細かくパーミッションが設定できるAPIトークンに変更になっています。いろいろ違うので別物のデータベースだと思ったほうがいいのかもしれません。

バージョン2のインストール

Install InfluxDB | InfluxDB OSS v2 Documentation
Download, install, and set up InfluxDB OSS.

公式ドキュメントは上記でした。要件として64ビットOSと、Raspberry Pi 4+ または 400がありました。そのためZero 2 Wは要件外ですが、まあ動くので検証してみたいと思います。

ただここの手順だとdebをダウンロードして、dpkgで入れろと書いてあります。できればapt管理したいので他の手順がないか探します。

InfluxData Downloads

ダウンロードページにはaptでインストールする方法が書いてありました。

# influxdata-archive_compat.key GPG fingerprint:
#     9D53 9D90 D332 8DC7 D6C8 D3B9 D8FF 8E1F 7DF8 B07E
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list

sudo apt-get update && sudo apt-get install influxdb2

上記でapt経由でインストールが完了します。

sudo systemctl enable influxdb.service
sudo systemctl start influxdb

自動起動とinfluxdbの開始も設定します。これで起動しているはずです。

http://192.168.1.2:8086/

Raspberry PiのIPアドレスを調べて、ポート8086にアクセスすることでInfluxDBの管理画面にアクセスすることができます。ただ初回起動は非常に時間がかかるので注意してください。

しばらく待つとスタート画面が表示されます。

管理画面にログインできるユーザーの作成と、最初につくる組織(Organizations)とバケット(Bucket)を作れと言われます。組織はデータベースだとスキーマー(CREATE SCHEMA)なのかな、複数の領域を作れます。バケットはデータベース(CREATE DATABASE)ぐらいのもので、さらに複数のテーブル相当のものを保存できます。

ユーザー名とパスワードはちゃんと保存しておきましょう。メモしてありましたが、どこに書いてあったのか忘れたので初期化した環境があります。。。

そしてオペレーター用のAPIトークンが発行されます。再度表示することはできないのでコピーしなさいと書いてありました。ボタンが3つありますが、クイックスタートを選択してみたいと思います。

よくわからないのですが、設定が完了しました。

とりあえず新しいバケットを作成してみたいと思います。

とりあえずsensorという名前で作ります。データは無限保存と過去30日間などが選択できます。あとで変更できるので無限にします。

増えました。

保存できるようにAPIトークンをGENERATE API TOKENから発行します。

今回はセンサーのバケットだけにアクセスできるようにカスタムAPIトークンを選択します。

センサーのバケットの読み込みと書き込みだけ権限を付けました。セキュリティーを考えると書き込みだけと読み込みだけのトークンに分離したほうが本来は好ましいかもしれません。

APIトークンが発行されました。

このAPIキーはメモ欄の編集以外は一時的な無効化と削除、そしてクローンしか操作できません。クローンでは同じ設定で新しいAPIトークンが発行されて画面に表示されます。基本的に保存していなかったトークンを回復する方法はないようです。あと権限の変更もできないので注意してください。

こんな感じでクエリデザイナがあります。ダッシュボードもありますのでGrafanaがいらない気もします。。。

まとめ

ちょっと中途半端なところですが、1系と2系の両方準備して次回は実際のセットアップ手順をまとめていきたいと思います。

続編

コメント