はじめに
環境データの収集にInfluxDBを使用していましたが、保存先のラズパイのディスクを誤ってフォーマットしてしまいました。
再度の環境構築に忘れていたことが多く少し手間取ったので備忘録を兼ねて紹介します。
なおインストール手順はinfluxdb社のHPに記載がありますのでより詳しく知りたい方はそちらもあわせて参照ください。
InfluxdBのインストール手順
以下の作業を順に行えばインストール出来ます。
①OSのバージョン確認
pi@raspberrypi:~ $ cat /etc/os-release
② GPG keyの追加
pi@raspberrypi:~ $ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add –
pi@raspberrypi:~ $ echo “deb https://repos.influxdata.com/debian stretch stable” | sudo tee /etc/apt/sources.list.d/influxdb.list
③package list の更新
pi@raspberrypi:~ $ sudo apt-get update
④influxdb インストール (ついでに telegraf chronograf kapacitor も)
pi@raspberrypi:~ $ sudo apt-get install telegraf influxdb chronograf kapacitor
⑤インストール後ラズパイを再起動する
pi@raspberrypi:~ $ sudo reboot now
⓺influxdbが稼働しているか確認
pi@raspberrypi:~ $ systemctl status influxdb
以下のように Active: active (running) になっていることを確認します。
pi@raspberrypi:~ $ systemctl status influxdb
● influxdb.service – InfluxDB is an open-source, distributed, time series database
Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled) Active: active (running)
since Sun 2022-02-20 03:02:01 JST; 11h ago
Docs: https://docs.influxdata.com/influxdb/
Process: 492 ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh (code=exited, status=0/
Main PID: 513 (influxd)
Tasks: 16 (limit: 4915)
CGroup: /system.slice/influxdb.service
└─513 /usr/bin/influxd -config /etc/influxdb/influxdb.conf
⑦curlコマンドを実行して204が返ってくるか確認する
pi@raspberrypi:~ $ curl -sl -I http://localhost:8086/ping
以下のように204が返ってくるくればAPI経由でアクセスできています。
pi@raspberrypi:~ $ curl -sl -I http://localhost:8086/ping
HTTP/1.1 204
No Content
Content-Type: application/json
Request-Id: 53c04564-920f-11ec-9405-b827ebc4b8be
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.8.10
X-Request-Id: 53c04564-920f-11ec-9405-b827ebc4b8be
Date: Sun, 20 Feb 2022 05:38:26 GMT
⑧API経由でクエリ(q=SHOW DATABASES)を受け付けてくれるか確認
pi@raspberrypi:~ $ curl http://localhost:8086/query –data-urlencode “q=SHOW DATABASES”
以下のような応答が返ってくれば問題ありません。
{“results”:[{“series”:[{“name”:”databases”,”columns”:[“name”],”values”:[[“_internal”]]}]}]}
⑨次にデーターベースを作成するために,influxを実行する
pi@raspberrypi:~ $ influx
以下が表示されます。
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
>
⑩この後、データーベースを作成する
ここでは、testというデーターベース名を作成します。
> create database “test”
>
⑪データベースが作成されたか確認する
> show databases
以下のような応答が返ってきます。
name: databases
name
—-
telegraf
_internal
test
>
⑫作成したデーターベースを使用します
>use test
以下のような応答があります。
Using database test
>
⑬データーベースの削除は以下の通りになります
> drop database “test”
⑭データーベースが削除されたか確認します
> show databases
以下の通り、”test”は削除されて無くなっています。
name: databases
name
—-
telegraf
_internal
なお、measurementの削除方法は次の通りです。
>DROP MEASURMENT <measurement名>
⑮quit で終了します
> quit
pi@raspberrypi:~ $
以上がデータベース作成までの手順となります。
Grafanaのインストール手順
InfluxDBで取得したデータを表示するにはGrafanaが適していてインストール手順は公式サイトに記載があります。
手順に従えばインストールすることは難しく無いと思います。
おわりに
私はSDカードでは長期連続稼働が不安ですのでargon製のラズパイケースにM2 SSDを組み合わせてサーバを構築してデータを保存しています。
この記事作成のあと、2022年12月19日にデータベースにアクセス出来なくなったようで気温などのデータが書き込めなくなりました。仕方なくこの自分のブログを参照して/var/libにあるデータベースを削除しinfluxdBを再インストールし直すことになりました。
やはり、データは破損を防ぐためにbackupを定期的に行う必要が有りますね。
おまけ(データ書き込みできない不具合の修復方法)
2023年9月19日に再度、データが保存できない症状が発生した。今回の不具合ではGrafanaにはログインできたので、InfluxdBを再インストール以外に修復する方法が無いかWEBをチェックしてみたところ以下の手順で回復できる情報がありましたので自分への備忘録の意味を兼ねてご紹介します。
まず症状が発生したときのinfluxdbのステータスを確認してみました。
本来の正常動作であれば、手順で述べた通りに、Active: active (running) とならなければならないところが、
Active: activating (start) となって起動時に停止しています。
これについて、InfluxdBの不具合のようなことが書かれていましたが、私のサーバで発生した今回の不具合では、次の手順で修復できました。
・/etc/systemd/system/multi-user.target.wants/influxdb.service に記述されている ”Type=forking”の行を削除(またはコメント化)して保存します。
・続いて、コマンドプロンプトで、
$ systemctl daemon-reload の後に $ systemctl status influxdb.service を実施して確認します。すると、
Active: activating (auto-restart) の状態となります。
・この状態ではまだ起動していないので、引き続き、systemctl start influxdb.service を実行したのちに、systemctl status influxdb.service で確認しますと、以下の画面の通り、
Active: active (running) の状態となります。
これで無事にデータ収集が復旧しました。
止まっている間はデータが無いですが、データベースそのものを削除する必要が無いので過去のデータが助かりました。
同じ症状に悩まされた際にはお試しください。
コメント