50
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

fluentd と Azure & PowerBI を連携させた簡単リアルタイム分析&ダッシュボード構築

Posted at

はじめに

  • 最近リアルタイムストリーム処理が注目されて、いろんなプロダクトやサービスが出て盛り上がっているので、そんな中でも可視化まで一気に手に入って簡単に使えるAzure & PowerBIを使うための手順をまとめておこうと思います

  • 注: 2015/08/21現在の情報なので、今後変わっていく可能性があります

  • 注: 2015/08/21現在、設定するリージョンとしては西日本もしくはUSをオススメします

何ができるの?

  • こんな感じのイケてるリアルタイムダッシュボードが、コードを書くことなく作れます

dashboard.PNG

  • このダッシュボードでは5秒に1度自動更新がかかるようになっています(更新はストリーム処理の頻度によります)

全体構成

  • このスライドの19ページ目にある図(下記)がEnd to Endの構成イメージで、この記事ではData Collection を fluentd で行い Event Hubs/Stream AnalyticsとPowerBIの連携部分について書きます

e2e.PNG

前提条件

  • 当然ながら Microsoft Azure のアカウントが必要です
  • また Power BI のアカウントも必要です
  • Mac の方は Google Chrome での操作をオススメしています

Event Hubs の作成と設定

  • Azure 管理ポータルサイト にアクセスし、表示されるログイン画面に Microsoft アカウント を入力して [続行] ボタンをクリックし、Azure 管理ポータルサイトにログインします
  • ログインすると、下図のような Azure 管理ポータルサイト画面が表示されます

azure-portal.PNG

  • Azure 管理ポータルサイトの左下部にある [+新規] をクリックします

new.PNG

  • [APP SERVICES] -> [SERVICE BUS] -> [イベント ハブ] -> [簡易作成] の順にクリックし、名前、リージョン、新規または既存の名前空間を指定して、新しい Event Hubs を作成します

eventhubs-create.PNG

  • Stream Analytics ジョブは、単一の Event Hubs コンシューマー グループから読み取ります
  • コンシューマーグループを作成するには、新たに作成された Event Hubs に移動し、[コンシューマー グループ] タブをクリックし、ページ下部の [作成] をクリックして、コンシューマー グループの名前を指定します

consumer-group-create.PNG

  • Event Hubs へのアクセスを許可するには、共有アクセス ポリシーを作成する必要があります
  • 作成には Event Hubs の [構成] タブをクリックします

policy.PNG

  • [共有アクセス ポリシー] で、[管理] アクセス許可を持つ新しいポリシーを作成します(お試しなので管理にしていますが、実運用では必要に応じて権限をコントロールしましょう)

policy2.PNG

  • [ダッシュボード] に移動し、ページ下部の [接続情報] をクリックして、接続情報をコピーして保存します

fluentd の設定

  • fluent-plugin-azureeventhubs を使うと、Event Hubs へデータを送るのがとても簡単です
  • connection_string に接続情報を設定し、hub_name に Event Hubs で設定した名前を入れるだけでOKです
(例)fluentd.conf
<match pattern>
  type azureeventhubs_buffered

  connection_string <Paste SAS connection string from Azure Management Potal>
  hub_name          <Name of Event Hubs>
  include_tag       (true|false) # true: Include tag into record [Optional: default => false]
  include_time      (true|false) # true: Include time into record [Optional: default => false]
  tag_time_name     record_time  # record tag for time when include_time sets true. [Optional: default => 'time']
  type              (https|amqps) # Connection type. [Optional: default => https]. Note that amqps is not implementated.
  expiry_interval   <Integer number> # Signature expiration time interval in seconds. [Optional: default => 3600 (60min)]
</match>
  • Event Hubsの設定が終わっていれば、この設定を用いてデータを投げ始めてOKです
  • Stream Analyticsの設定で、実際のデータをサンプリングする部分があるので、先にデータを投げておくとよいです

Stream Analytics ジョブの作成

  • Stream Analytics のジョブは、"入力" "クエリ" "出力" の3つの設定から成り立っています
  • まずは Azure ポータルで、[新規]、[データ サービス]、[Stream Analytics]、[簡易作成] で作成します

stream-analytics-create.PNG

入力の設定

  • Stream Analytics ジョブで、ページ上部の [入力] をクリックしてから、[入力の追加] から設定を追加します

inputsetting.PNG

  • [入力のエイリアス]: ジョブの入力の名を入力します。後でクエリでこの名前を使用します
  • [イベント ハブ]: Event Hubs がある名前空間を選択します
  • [イベント ハブ名]: Event Hubs の名前を選択します
  • [イベント ハブ ポリシー名]: このチュートリアルで前に作成した Event Hubs のポリシーを選択します
  • [イベント ハブ コンシューマー グループ]: このチュートリアルで前に作成したコンシューマー グループを入力します

ジョブのクエリの指定

サンプルデータの入力

  • 入力を選択して、ページ下部の [サンプル データ] をクリックします

sampling.PNG

  • 表示されたダイアログ ボックスで、データ収集を開始する [開始時間] を指定し、使用する追加のデータ量に応じて [期間] を指定して収集すると、サンプルデータが生成されます
  • 生成が終わると、[詳細] が出てくるのでそこをクリックし、 ここをクリック リンクをクリックして、生成された .JSON ファイルをダウンロードして保存します。

sample-json.PNG

クエリの入力、検証

  • Stream Analytics ジョブ ページの上部にある [クエリ] をクリックすると、クエリエディタが出てきます

query-editor.PNG

  • 適宜クエリを書き、[テスト] をクリックすると、先ほど取得したサンプルjsonをuploadして、そのサンプルデータに対しするクエリ実行結果を確認することができます

output.PNG

出力の設定

  • Stream Analytics ジョブで、ページ上部の [出力] をクリックし、[出力の追加] をクリックすると設定が出てきます

output-setting.PNG

  • ここでは PowerBI を選択して進めます
  • 続いて出てくる[接続の承認]ページで Power BI のアカウントを使ってアクセスを承認します

ack.PNG

  • 承認が済んだら、出力設定をします

powerbi-setting.PNG

  • [出力のエイリアス]: 出力のエイリアス名なので、わかりやすいものを設定します
  • [データ セット名]: Power BI で利用するデータ セットの名前を選択します。
  • [テーブル名]: Power BI で利用するテーブルの名前を選択します

 クエリの開始

  • 入力、クエリ、出力のすべてが設定できたら、ジョブを開始できます
  • 画面下部の [開始] ボタンを押して開始します、ここで開始時刻を指定することもできます

PowerBI

  • ジョブが問題なく開始されていれば、先ほどの設定どおりにPowerBI側のデータソースに出力があるはずです

powerbi-window.PNG

おわりに

  • ちょっとブラウザ&ログコレクタの設定をするだけで、いい感じのリアルタイムダッシュボードが作れるので、いろいろ可視化関連で自作してて大変だな~と思っている方には特に捗るサービスだと思います。
50
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?