ラズパイ3 B+ telegraf+InfluxDB+Grafanaで計測データをグラフ化

Fluentd・Elasticsearch・Kibanaのグラフ化がうまくいかなかったので、今度はFluentd・ InfluxDB・GrafanaでRaspi3 B+を母艦として動くか試してみます。これはうまくいきました。

温度や水温・湿度などの情報はESP8266やESP32からFluentdが取得してRaspi3に集めてグラフ表示までいけたら完成。そこまでの道のりは長そう。

その後は、温度上昇したらホットシートをオフにするなどの処理をリレーで自動的に行っていけるようにします。

まずは人間が見て異常に気づいたら操作できるようにグラフ化したい。(最悪MUNINでグラフ化しますが、リアルタイムじゃないので意味ないかなぁ、)

こちらのページは今回の案件そのまんまずばりの答えがのってた♪ありがとうございますm(_ _)m

記録したデータをグラフ化して、時間軸とか色々自由に調整してみたい! と思い立ち、収集した時系列データをInfluxDBに保管して、Grafanaでインタラクティブなグラフとして可視...
Raspberry Pi でセンシングしたデータをログ収集ツール Fluentd を使って簡単に収集する方法を紹介します. 目次1 全体構成2 Raspberry Pi の Fluentd 設定3 サーバの Fluent...

InfluxDB のインストール

InfluxDBのページの「Installation」を見ながらインストールしてみます。

Since its introduction in 2013, the Raspberry Pi platform has grown by leaps and bounds, gaining popularity and showing up in projects all over world.

インストール前の確認

Version 9でないとダメみたい。

リポジトリ追加。

と出ればいいみたい。出なかった場合はsudo apt-get updateすればOK

インストール

いよいよインストール↓

インストールが終わると自動で起動するのでテスト

と表示された。

動作確認

シェルから動作確認

こうなればちゃんと動いてるっぽい。

シェルは8086・Webからは8083にアクセス。間違えやすい。

コマンドとクエリー

Select

Insert

最初はMEASUREMENTS(table)とカラム同時に作る感じ。あとからカラムは追加可能。

  • MEASUREMENTS=air
  • tags=place,host(2個目のValueとの間はスペース)
  • value=temp,humi(カンマ区切り)
Documentation for InfluxDB, Telegraf, Chronograf, Kapacitor, and Flux

かな?Valueの部分がSQLでいうカラムになると思う。tagsで分ける。

この後、カラムは追加可能。

Delete

Documentation for InfluxDB, Telegraf, Chronograf, Kapacitor, and Flux

テーブル内のデータ削除

Export

exportファイルが生成される。すべてのデータは出力されないみたい。新しいTableはでてこなかった。意味ないなぁ。

API

Documentation for InfluxDB, Telegraf, Chronograf, Kapacitor, and Flux

Select

write

これでうまく登録された。

InfluxDBのUI表示

ブラウザからは8083。

Windows10からブラウザで「http://192.168.31.53:8083/」(ラズパイ3B+のIP)と打つと接続された!phpMyAdminのようなものみたい。

DBあるかQueryに「SHOW DATABASES」と打つと「_internal」が出てきた。↑右下の「Query Templates」にちょっとしたクエリーがあるので選択してリターンを押すだけでクエリーが発行される。

接続設定

外部からアクセスしたときに接続できるようにする。右上の歯車アイコンを押して設定。最後に「Save」ボタンを押す。

DB作成テスト

「test」というDBを作成すると以下のようにエラーになった。usernameとパスワードを作った後だったのでアクセスできないよう。

URLの部分、queryのあとに「?u=root&p=パスワード」を入れてダブルクォーテーションで囲んで以下のようにしてみたら「test」DBが作成できた。

返答のHTTPで4XX系が表示されたらエラーで2XXが表示されたら正常のようです。

  • 204 No Content:OK
  • 400 Bad Request:エラー

データ投入テスト

DB=test,measurement(table)=testtableでデータを作って投げてみました。

確認

measurementにデータが入っているか確認する。

このようになりました。うまくいったようです。

追記:Influxdb WebUI 8083にアクセスできなくなった!

急にhttp://127.0.0.1:8083/にアクセスできなくなったのでChronografを追加します。いままでアクセスできてたのは何だったのだろうか???今後は8083はやめてChronografを使うようです。

http://localhost:8888/にアクセスすると・・・

とでる・・・今度はfluentとぶつかってる?そんなことはなさそうだけど・・・fluentdをいったん終了すると、このような↓画面になった。

1 Chronograf

Influxdb ログイン設定

Influxdb ログイン設定

「S」と適当に選んだ

Connectedを押した

Telegrafの内容がグラフで表示された

Telegrafの内容がグラフで表示された

InfluxDBをいじる時はカンムリアイコンを押す。

クエリー発行できなくなった?のかな?不便だなぁ、あっ、グラフのアイコン(上から3番目)でクエリー発行できそう。

SystemとかApacheとかもっとグラフ追加できるみたい。

Grafanaインストール

Grafana Feature overview, screenshots, videos, feature tours

ARMv7のをインストールするようです。

デーモンリロードしてGrafana起動

Grafana起動してるか確認

Grafana ブラウザからアクセスしてみる

Windows10からアクセスしてみる。

「http://192.168.31.53:3000」→「http://192.168.31.53:3000/login」にリダイレクトした。ID/Passはデフォルトでadmin/adminでした。

Loginするとパスワード変更しろと出るのでパスワードだけ変更する。IDはadminになる。

まだちゃんとしたデータが無いのでデータを生成してくれるツールを探す。

telegrafインストール

とりあえずおもしろそうなデータが欲しいのでInfluxDBにCPUの状態などを送れるtelegrafというのがあるので試してみます。

参考ページ

influxDB 時系列データベース reference InfluxData | Documentation | Installation How to Install curl -sL | sudo apt-key add - source /etc/lsb-release echo "deb {DISTRIB_...
Telegrafは簡易にセットアップ可能なInfluxDBのメトリクスコレクタである。これはプラグインアーキテクチャを採用している。現在ではデータの出力先としてInfluxDBだけでなくKafkaなど他の出力先も利用できるようになった。本エントリではTelegrafをインストールして、KafkaやInfluxDBの管理...

ダウンロード・インストール

メルアドと名前登録が必要ですが、以下からtarball(しかないので・・・)をダウンロード。

解凍

ちょっと面倒だけど必要なものだけ移動する。

起動

起動すると以下のようになる。

以下も同様に表示された。ただシェルで動いているので[Ctrl]-[c]すると終了してしまう。

起動確認

起動スクリプト

リブートしたときなど自動で起動するようにする。

telegraf.serviceはエラーになる・・・

起動スクリプトは最近はtelegraf.serviceを/etc/systemd/system/に置くことが推奨されてるようなので、置いてみると・・・Failedになる。

デフォルトの状態で設置しただけなのに、なにか足りない?Tarballから入れると面倒だなぁ、ちょっとわからんかったので保留・・・

ちょっと正規のやり方でないかもしれませんが、以下のようにして自動起動させる。

これでリブートしてps aux | grep telegrafで確認したら起動してた。

DB追加されてる

そしてInfluxDBを見るとDBが追加されてる。

試しにcurlでtelegrafのcpuの中身を見てみると↓データがたくさん蓄積されていた。

Grafanaで表示してみる

telegrafが集めてInfluxDBが保存しておいてくれたデータを表示してみます。

下にある「Save & Test」を押してうまくいくと「Data source is working」となる↓

グラフを作る

いよいよtelegrafが保存してくれたデータを表示してみます。まずは左の「+」を押してNew dashoboardを選択。

グラフを押します。

「Panel Title」のEditoを選択。

すると以下のようにFROM部分とSelect部分を選択するとグラフが表示されました。

一つの表に複数のグラフを書きたい場合はAdd Queryを押して同じように追加していくと以下のようになります。

タイトルは左側のGeneralタブを押して変更可能。

最終的にこのようになってとりあえずの目標は達成!

しかし大元のホームに主に見たいグラフを表示させる方法はわからない。やりかたありますよね?探してみます。

続いて部屋の温湿度をFluentdでログを送ったやつを表示させてみたいけど、まだ温湿度をFluentdに投げる部分ができてないのでまずはそこからやります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする