センサデータを fluentd 経由で GCP 上の Elasticsearch に送信して可視化


1. はじめに

以前の記事 で、RaspberryPi で収集したセンサデータを、 さくらVPS上に構築した Elasticsearch に送信して、Kibana で可視化しました。
今回は勉強を兼ねて、データを Google Cloud Platform ( GCP ) に送信するように構成を変更します。

2. Server side の設定 ( GCP )

Cloud Launcher からソリューションを検索してデプロイ

Elasticsearch と Kibana がセットになっているものを探します。
「ELK Certified by Bitnami」が良さそうだったので、今回はこれを仮想マシンにデプロイすることにします。

初期設定画面。
マシンのスペックと、ディスクのサイズを下げました。

デプロイボタンをクリックすると、デプロイが始まります。

Deployment Manager で情報を確認

デプロイが完了したら、Deployment Manager で各種情報を確認します。
Admin URL にアクセスしてユーザ名とパスワードを入力すると、Kibanaが開きます。

VPCネットワーク > ファイアウォールルール に設定を追加

自宅のIPアドレスから Elasticsearch(9200番ポート) へのアクセスを許可します。

3 Sensor side の設定 ( Raspberry PI )

前提条件

以前の記事 の状態が前提です。今回はこれに変更を加えます。

プラグインのインストール

  • fluentd から Elasticsearch に直接格納するためのプラグインをインストールします
sudo fluent-gem install fluent-plugin-elasticsearch

fluentd の設定

  • fluentd の設定ファイルを編集して、データの送信先を変更して、fluentd を再起動します
/home/pi/fluent/fluent.conf
<source>
  @type tail
  format json
  path /home/pi/myroom.log
  pos_file /home/pi/myroom.log.pos
  tag log.myroom
</source>

<match log.myroom>
  @type copy
  <store>
    @type elasticsearch
    type_name myroom
    logstash_format true
    logstash_prefix myroom
    reload_connections false
    hosts http://XXX.XXX.XXX.XXX:9200
  </store>
</match>

4. 確認

GCP 上の Elasticsearch にデータが送られていることを確認しました。