7. シナリオ2+: センサーデータを可視化する-2

このシナリオは、オプションです。通常のハンズオンでは、スキップして下さい。

Lambdaで変換されたセンサーデータをElasticSearch Serviceへ送り、Kibanaでグラフ表示します。データ変換には、シナリオ1で使用したLambda関数を使用します。

_images/overview3.png

7.1. グローバルIPアドレスを調べる

Kibanaを特定のIPアドレスからだけアクセスさせるために、PCのグローバルIPアドレスを調べます。下記のURLにアクセスしてください。(PCを社内WiFiに接続している場合、Kibanaからアクセスできない場合がありますので、トレーナーが準備したWiFiに接続し直して下さい。)

SSID = awshandson もしくは awshandson5、パスワード = awshandson

https://www.cman.jp/network/support/go_access.cgi

_images/grobal_ip.png

グローバルIPアドレスが表示されるので、ノートパッドなどに記録しておいて下さい。

7.2. ElasticSearch Serviceのドメインを作成する

サービス一覧から[ElasticSearch Service] をクリックして開きます。

_images/es.png

Elasticsearch Serviceの画面が開きますので、[新しいドメインの作成] をクリックして下さい。

_images/es-get-started.png

「Elasticsearch ドメインの作成」画面になります。

[Elasticsearch ドメイン名]に、”firehose-to-es-domain-<参加者番号>” と入力して、[次へ] をクリックして下さい。

項目 設定
Elasticsearch ドメイン名 firehose-to-es-domain-<参加者番号>
_images/cretate-es-domain.png

次の画面では、何も入力せずに、[次へ] をクリックして下さい。

「アクセスポリシーの設定」では、 [テンプレートを選択] で、 特定のIPからのドメインのアクセスを許可 を選択して下さい。

_images/domain-access-policy.png

IPアドレスの入力画面が表示されるので、先ほど記録した “グローバルIPアドレス” を入力し、[OK] を押して下さい。

_images/domain-access-ip_input.png

アクセスポリシー が表示されるので、先ほど入力した“グローバルIPアドレス”を確認して、[次へ] をクリックして下さい。

_images/domain-access-policy-2.png

確認画面が出てきますので、[確認] をクリックして下さい。 Elasticsearch ドメインが出来るまで、10数分かかります。

_images/confirm-create.png

7.3. Kinesis Firehoseの設定

マネージメントコンソールのサービス一覧から [Kinesis] を開きます。[Firehose コンソールに移動] をクリックします。

_images/kinesis-firehose-1.png

[Create Delivery Stream] をクリックして下さい。

_images/create-delivery-stream1.png

Step 1 で、”Delivery stream name” として、”sensor-data-to-es-<参加者番号>” を設定し、他の設定は、そのままにして [Next] をクリックします。

項目 設定
Delivery stream name sensor-data-to-es-<参加者番号>
_images/create-delivery-stream-11.png _images/create-delivery-stream-21.png

Step 2 では、Lambda関数を用いた、データ変換の設定を行います。

Lambdaでデータ変換を行いますので、Data transformation を Enabled にして、Lambda関数を選んで、[Next] をクリックして下さい。

項目 設定
Data transformation Enabled
Lambda function ranger-raw-data-to-json-<参加者番号>
_images/create-delivery-stream-3.png

Step 3 で、Destination として Amazon Elasticsearch Service を選択し、下記の情報を入力し、[Next] をクリックします。

項目 設定
Destination Amazon Elasticsearch Service
Domain firehose-to-es-domain-<参加者番号>
Index sensordata
Type scenario2
Backup S3 bucket sensor-data-<参加者番号>-<ユニークな文字列>
_images/create-delivery-stream-3-11.png

Step 4 で、下記を入力し、[Create new, or Choose] ボタンを押します。

項目 設定
Buffer interval 60 (Elasticsearch Serviceに60秒周期でデータが追加されます)
Error Logging Disable
IAM role [Create new, or Choose] ボタンを押す
_images/create-delivery-stream-3-2.png

IAM ロール の設定画面が開きます。

“新しい IAMロールの作成” を選択し、ロール名を入力して、[許可] をクリックすると、Firehoseの設定画面に戻ります。

項目 設定
IAM ロール 新しい IAMロールの作成
ロール名 firehose_delivery_role_es-<参加者番号>
_images/firehose-iam-role1.png

設定したIAM ロールが選択されていることを確認し、[Next] をクリックして下さい。

_images/create-delivery-stream-41.png

最後に、[Create Delivery Stream] をクリックして下さい。

_images/create-delivery-stream-5.png

Elasticsearch Delivery Streamsの作成が開始されました。

_images/create-delivery-stream-61.png

7.4. Kinesis Firehose用のAWS IoT ルールを作成

サービス一覧から[AWS IoT]をクリックして開きます。

_images/iot-servicemenu@2x.png

ルールを作成します。メニューから [ルール] をクリックします。ルール一覧画面で、[作成] をクリックします。

_images/create-rule-2.png

下記の項目を入力し、[アクションの追加] をクリックします。

設定項目
名前 iotrule_firehose_es_<参加者番号>
属性 *
トピックフィルター sensor/<参加者番号>

“*”は、半角の*(アスタリスク)です。

_images/create-rule2.png

“Amazon Kinesis Firehoseストリームにメッセージを送信する” を選択し、[アクションの設定] をクリックします。

_images/select-action.png

“ストリーム名” として、sensor-data-to-es-<参加者番号> を選択し、シナリオ1で作成したIAM roleを選択し、[ロールの更新] をクリックします。 “ロールは正常に更新されました。” と表示されたら、[アクションの追加] をクリックします。

設定項目
ストリーム名 sensor-data-to-es-<参加者番号>
IAM ロール名 IOT_to_Kinesis_Firehose-<参加者番号>
_images/add-action2.png _images/role-update_completed.png

「ルールを作成する」画面に戻ります。[ルールを作成する] をクリックして、ルールを作成します。

_images/create-rule-31.png

7.5. Kibanaでデータを確認

マネージメントコンソールのサービス一覧から[Elasticsearch Service]を開きます。

“ElasticSearch ドメイン” の [検索可能なドキュメント] の数字が 1より大きくなっていることを確認します。[Cクラスターの状態] が [黄色] になっていのはシングルノード構成のためでありハンズオンでは問題ありません。

_images/es-dashboard.png

[ドメイン] のリンクをクリックして “firehose-to-es-domain-<参加者番号>” を開きます。[Kibana]のリンクをクリックして開きます。

_images/kibana-link.png

Kibanaで表示させるindexを指定します。以下の値を入力して、[Create]をクリックします。 60秒周期でElasticSearch Serviceにデータが追加される設定になっているため、@timestamp 現れるまで数分かかることがあります。

設定項目
Index name or pattern sensordata
Time-field names @timestamp (リストから選択)
_images/kibana-index-create.png

tempreature, humidity, rssi, @timestamp のフィールドが表示されている事を確認します。

_images/kibana-indices.png

メニューにある [Discover] をクリックし、データが届いている事を確認します。

_images/kibana-discover.png

メニューにある[Visualize]をクリックし、[+ Create a visualization]をクリックします。

_images/kibana-create-a-visualization.png

グラフの種類として[Line chart]を選択します。

_images/kibana-visualize.png

[From a new search]から、”sensordata”を選択します。

_images/kibana-sensordata.png

Indexとして [sensordata] が選択され、Y軸にサンプル数(Count)が設定されている事を確認し、X軸の設定を開始するために[X-Axis]をクリックします。

_images/kibana-count.png

[Aggregation]に[Data Histogram]を選択し[▶]をクリックすると、右側にグラフが表示されることを確認します。

_images/kibana-count-graph.png

[Save]① をクリックし、[Title] に ② “Sensor Data - Sampling Count]” と入力し、その下にある [Save]③ をクリックします。

_images/kibana-save-count.png

保存されたら、①Y軸(Y-Axis)の設定を表示し、[Aggregation] を [Average] に変更し、[Field] に ③[tempreature](温度)を指定します。④[▶]をクリックしてグラフに適切なデータが表示されることを確認します。

_images/kibana-temp.png

[Add metrics] をクリックし、湿度データを追加します。①[Y-Axis] をクリックし、[Aggregation] を ②[Average] に変更し、[Field] に ③[humidity](湿度)を指定します。④[▶] をクリックしてグラフに適切なデータが表示されることを確認します。

_images/kibana-humid.png

Beaconの電波強度(rssi)も同様に追加します。

_images/kibana-rssi.png

①[Save] ボタンをクリックし、[Title] に ②”Sensor Data - temp - humid - rssi” と入力し、③”Save a new visualization”にチェックを入れ。④[Save]をクリックします。

_images/kibana-save-temphumidrssi.png

メニューにある[Dashboard]をクリックします。[+ Create a dashboard] します。

_images/kibana-dashboard.png

[Add] ボタンをクリックします。

_images/kibana-dashboard-add.png

[ Sensor Data - temp - humid - rssi] をクリックし、下側にグラフが追加されたのを確認します。

_images/kibana-dashboard-add-temphumidrssi.png

[Sensor Data - Sampling Count]をクリックし、下側にグラフが追加されたのを確認します。

_images/kibana-dashboard-add-count.png

①[Save] ボタンをクリックし、[Title] に ②[Sensor Data] と入力し、③[Save] をクリックします。

_images/kibana-dashboard-save.png

右上の[Last 15 minutes]をクリックすると、表示する期間や表示を自動更新する頻度を変更できます。

_images/kibana-update.png

グラフをマウスで操作して、位置やサイズを変更することもできます。

_images/kibana-size-pos.png