Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

RaspberryOSでInfluxDBをためそう……としたが古い1.8版までが限界だった話

時系列データベースを試そうと思ったら、InfluxDBの現行版である2系は32bit非対応だった罠

この記事は戒めのために残しておく

実際のところ

  • influxdb2-2.0.7-arm64

で作業。

そもそもTSDBとは何なのだ

InflexDBの公式の説明によると……

What is a time series database?

Here’s a brief time series database definition: A time series database (TSDB) is a database optimized for time-stamped (time series) data and for measuring change over time.

InflexDB公式の声明によれば、そんなTSDBの中で一番勢いがあるとのこと。

InflexDBではデフォでREST APIがついてたりしてイマドキな構成。

導入

Install InfluxDB | InfluxDB OSS 2.0 Documentationを参考に作業……しようと思ったらarmhf版が何故かなく、単純な置き換えではできなかった。

有難い事に先駆者がいたので、写経しながら進める。
Raspberry Pi InfluxDB installation · GitHub

作業中のバージョン確認

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

鍵情報の登録

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -

apt-transport-httpsちう便利なパッケージを経由して、Influxdbのリポジトリをリストに登録

sudo apt install apt-transport-https
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update

無事リポジトリが登録されるので、

$ sudo apt install influxdb
sudo service influxdb start

参考もと

Raspberry Pi 4でInfluxDBを稼働させる
Raspberry Pi InfluxDB installation · GitHub

以下、うまくいかなった時のメモ。
検索で引っかかった人用?

続きを読む

Grafana環境をRasPiに構築する その3:別のデータソースを追加する

shuzo-kino.hateblo.jp
の続き。
今回は、別のデータソースを追加してみます。

実際のところ

Configから、PlugInを選択
f:id:shuzo_kino:20210629234855p:plain

「Find more plugins on Grafana.com」で、新しいプラグインを探します。
Grafana Plugins - extend and customize your Grafana | Grafana Labs
に飛ぶので、お好みのものを。

Google SpreadSheet

GoogleSpreadSheetを選びます。
f:id:shuzo_kino:20210629235105p:plain
GrafanaCloud環境ならワンクリックで導入なんですが、今回はRasPiなので導入した端末でCLI経由で。

$ grafana-cli plugins install grafana-googlesheets-datasource

で、再起動

$ sudo /bin/systemctl restart grafana-server

PlugInの検索をすると、先ほどいなかったGoogleSheetが確認できるので追加
f:id:shuzo_kino:20210629235935p:plain
設定項目が出てきます。
f:id:shuzo_kino:20210630000113p:plain

CSV

$ sudo grafana-cli plugins install marcusolsson-csv-datasource
$ sudo /bin/systemctl restart grafana-server

f:id:shuzo_kino:20210630005518p:plain

f:id:shuzo_kino:20210630005742p:plain

デフォではCSVのローカルモードが許可されていないので、これを解除

Grafana環境をRasPiに構築する その2:データを表示する

shuzo-kino.hateblo.jp
の続き。
データを追加してグラフ出すところまで。

実際のところ

公式が推しているPrometheusで。
調べると、サーバー監視まわりの新しめなツールでZabbixなんかと比較されれるようなモノの様子。
knowledge.sakura.ad.jp
導入はaptで。ソースからビルドするとGO言語が必要らしい。

$ sudo apt install prometheus


デフォ画面なら上段の真ん中あたりにDB追加がでてるのでクリック
f:id:shuzo_kino:20210628223223p:plain

種類選択がでるのでPrometheusを選択。
f:id:shuzo_kino:20210628222953p:plain
なんやら色々と設定項目が出てきます。

パネルの配置

右上のプラス記号のついてるのをクリック
f:id:shuzo_kino:20210628223408p:plain

Add Empty Panel
f:id:shuzo_kino:20210628232232p:plain

パネルを追加する

f:id:shuzo_kino:20210628231901p:plain

こんなのが出てくる
f:id:shuzo_kino:20210628232321p:plain

クエリに「prometheus_http_request_duration_seconds_count{handler="/metrics",instance="localhost:9090"}」てな感じのを叩きこんで
f:id:shuzo_kino:20210628233939p:plain

クエリオプションを弄るとデータの刻みなどを変更可能
f:id:shuzo_kino:20210628234404p:plain

【読書メモ】仮想発電所システムの構築技術

コロナ騒動でゴーストキッチンだのバーチャルナンチャラだのと、作業拠点を分担していながら実際は一つの店舗、あるいは複数の店舗のようにふるまう業態が出てきました。

発電所……というか電力の需要供給周りでも、コロナ騒動以前からそういう動きがあるそうで、これを仮想発電所(VPP)といいます。
いくつかの発電所をつないで、電力需要に応じて供給や蓄電をも管理しようという技術体系です。

これに関してはエネルギー庁が資料を作ってくれていたので、ありがたく引用させてもらいましょう。

電気はその性質上、生産と消費を同時に行わなければなりません。このため、発電所は、単に電力を生産するだけでなく、必要な量を瞬時瞬時に供給することで、電力システム全体の需給バランスを調整するという働きもしています。

(中略)

"バーチャルな発電所"とは、このような、あちこちに散らばっている発電設備などをひとつに束ねて、あたかもひとつの発電所のように利用するしくみのことです。それぞれの設備の発電量や蓄電量が小さくても、まとめて制御することで、大規模な発電所のように、電力の需要バランス調整に役立てることができるようになります。

このしくみを、「仮想発電所(バーチャルパワープラント、VPP)」と呼びます。

これからは発電所もバーチャルになる!?|広報特集|資源エネルギー庁 より引用

コンセプトそのものは、スマートグリッド等々と出ていたので、多分ユビキタスがM2Mになり、いまではIoTだIoEだと言っているのと構造が似てるんかと思います。

あまりに業界が違いすぎて知らなかったのですが、こういう制御で需要があるのはビルの空調まわりなんだそうです。
なるほど、高層ビルで作業快適な空調を実施するとなると……需要が細る夜間にバリバリ蓄電して、日中は可能な限り蓄電で凌ぐのは理にかなっています。
そういうスマート空調が推定150万台あるそうで……ビル周辺自体の自己発電能力を需要以下にしてプラスにするという「ネガワット」という概念もあるそうです。
う~ん、すごい。
めっちゃ数式がでてきて、モーメント云々とか完全に制御工学ですね。


【私的メモ】VPPの通信規格

以下の内容は8章に記載あり。
ソフトウェア屋の弊社はここを担当するような気がする。

系統通信
施設内通信

参考もと

www.enecho.meti.go.jp

【読書メモ】Making Things Move

MAKE系の本で、主題は機械科でやる様なもの。
つまりネジやリンク機構、応力などです。

読む前はライントレーサーの様な簡単な動く物を作る工作本かと思ってましたが、
実際にはちゃんと理屈を説明しながら進んでいきます。
ブルーバックスも含めて、同系統の本では一番読み易くて腹落ちしやすい解説した。
作例はそんなに多くありません。
そのあたりの手数は夏休み工作キット本みたいなのを眺めたり、実際作ったりして補っていくのがいいかと思います。

Grafana環境をRasPiに構築する その1:環境構築し最初の画面をだす

GrafanaはRasPiでも動くので、とりあえず手元環境で遊びたい場合にぴったり。

実際のところ

まずAPTキーを確保

$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

Grafanaのリポジトリを追加

$ echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

aptを更新し、ダウンロード

$ sudo apt update
$ sudo apt install -y grafana

導入すると

システムユーザ `grafana' (UID 110) を追加しています...
新しいユーザ `grafana' (UID 110) をグループ `grafana' に追加しています...

という感じで、ユーザーが追加されます。

有効化

systemctrlの管理下に置かれるので、有効化。
ツール名はGrafana-server

$ sudo /bin/systemctl enable grafana-server
$ sudo /bin/systemctl start grafana-server

確認

mDNSが"raspberrypi.local"、ポート3000番がアクセスできる状態で

http://raspberrypi.local:3000

f:id:shuzo_kino:20210625235745p:plain

user,passともにadmin

デフォパスワードだと変更するよう促されるので(それはそう)
よろしく設定しときます。
f:id:shuzo_kino:20210625235920p:plain

まっさらな状態では、チュートリアルだとかWhatsNewみたいなのが出てるシンプルな画面がでてきます
f:id:shuzo_kino:20210626000028p:plain

参考もと

grafana.com