Azure Monitorで収集したデータをEvent Hub経由で外部連携する

# 概要
Azure Monitorで収集したログデータをLog Analyticsのデータエクスポート機能を利用し、
Event Hub経由で別システムへ連携する方法を検証したため、手順をまとめておきます。

# 環境
今回の検証で使用した環境の構成は以下の通りです。

- 検証用仮想マシン
  監視対象の仮想マシンです。
  当該VMにAzureMonitorのエージェントをインストールし、ログデータを収集します。
- Azure Monitor
	- データ収集ルール
	  データ収集元（リソース）と収集対象データ（データソース）を指定します。
	- Log Analyticsワークスペース
	  収集データを集積・処理します。
- EventHubs
  LogAnalyticsから外部システムへのデータ中継に利用するストリーミングサービスです。

![infra_config.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/c15ed4ab-0b4d-7bc3-7aa4-05e0738a24bc.jpeg)

# 手順

## ログ収集設定

### 1. Log Analyticsワークスペースの作成
Azureポータルのサービス一覧から「分析」 > 「Log Analytics ワークスペース」を選択し、「作成」ボタンをクリックします。
![process_001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/fd9f7e7a-a193-1daa-e318-9e5669be54b0.jpeg)

以下のパラメータを設定し、「作成」ボタンをクリックします。
- サブスクリプション：利用環境に合わせて設定
- リソースグループ：利用環境に合わせて設定
- 名前：任意
- リージョン：利用環境に合わせて設定
![process_002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/85d6a24a-5554-24b8-1cec-2bd7d5a054dc.jpeg)

### 2. データ収集ルールの作成
Azureポータルのサービス一覧から「モニター」 > 「データ収集ルール」を選択し、「作成」ボタンをクリックします。
![process_003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/2e785e03-6960-ef76-7eb9-1854bc160f08.jpeg)

利用環境に合わせて以下のパラメータを設定し、「次へ」ボタンをクリックします。
- ルール名：任意
- サブスクリプション：利用環境に合わせて設定
- リソースグループ：利用環境に合わせて設定
- リージョン：利用環境に合わせて設定
- プラットフォーム：利用環境に合わせて設定
![process_004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/0925f996-3b5b-f6ac-b88e-fd3ba2f0072d.jpeg)

「リソースの追加」ボタンをクリックし、監視対象の仮想マシンを追加し、「次へ」ボタンをクリックします。
![process_005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/644b0023-0852-ea34-44dc-683376f9a434.jpeg)

「データソースの追加」ボタンをクリックし、収集対象とするデータリソースおよびデータの配信先を指定して「次へ」をクリックします。
![process_006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/db8568ad-d130-5498-b164-ed3e4bb5fc84.jpeg)

タグは指定せず次へ進み、「作成」ボタンをクリックしてデータ収集ルールを作成します。
![process_007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/d785df3c-a206-aee0-11bd-a9ffbe1505b6.jpeg)
![process_008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/2d88a851-3eab-bb01-da12-e7de67472d12.jpeg)

データ収集ルールの作成が完了すると、監視対象の仮想マシンにAzure Monitorエージェントが自動インストールされます。
![process_009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/0787c31b-e9d9-9d12-326a-18509b08257f.jpeg)

収集されたデータはLog Analyticsワークスペースでクエリを実行することで確認できます。
![process_010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/60c41423-1d24-9d8a-9b71-d217e84cfc23.jpeg)

### 3. Event Hubの作成
始めに名前空間を作成します。
Azureポータルのサービス一覧から「分析」 > 「Event Hubs」を選択し、「作成」ボタンをクリックします。
![process_011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/bd7d6b2c-3024-2d73-a0a2-f600764ecb61.jpeg)

利用環境・目的に合わせて以下のパラメータを設定し、「次へ」ボタンをクリックします。
- サブスクリプション：利用環境に合わせて設定
- リソースグループ：利用環境に合わせて設定
- 名前空間の名前：任意
- 場所：利用環境に合わせて設定
- 価格レベル：利用目的に合わせて設定
	- EventHubは価格レベルで利用できる機能が異なるため、利用目的と照らし合わせて選択します。
	  参考：[Azure Event Hubs のレベルを比較する](https://learn.microsoft.com/ja-jp/azure/event-hubs/compare-tiers)
- スループットユニット：利用目的に合わせて設定
	- Event Hubs のスループット容量はスループットユニット数によって制御され、また料金が変わります。
	 参考：[Event Hubs によるスケーリング](https://learn.microsoft.com/ja-jp/azure/event-hubs/event-hubs-scalability)
![process_012.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/4da1058f-c362-7884-f2b8-50d3ff65388a.jpeg)

今回は検証のため、詳細、ネットワーク、タグ設定はデフォルトのまま確認と作成画面に進み「作成」ボタンをクリックします。
![process_016.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/5f4a18e3-d8b5-355e-cbd1-2b5923ec7be4.jpeg)

続いて、Event Hubを作成します。
作成した名前空間の概要画面で「＋イベントハブ」ボタンをクリックします。
![process_017.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/f6679a04-d681-3452-0a40-d7b7dc46b0f9.jpeg)


Event Hubの任意の名前を入力し、他設定はデフォルトのまま作成します。
![process_018.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/c2ca6461-378c-ab20-937d-838d09ed14ca.jpeg)
![process_019.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/f1822a19-4d36-e662-fd2e-8d5611c7dbb9.jpeg)

Event Hubの作成が完了したら、外部システムとのデータ連携用に共有アクセスポリシーを作成します。
名前空間の設定から「共有アクセスポリシー」を選択し、「追加」ボタンをクリックします。
ポリシー名と権限を設定し、「作成」ボタンをクリックします。
![process_020.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/2e6c642e-98d9-3493-5199-a760dde38189.jpeg)
作成されたポリシーに割り当てられたキーは、Event Hubからデータを送受信する際に利用します。

### 4. Log Analyticsワークスペースのデータエクスポート設定
作成したLog Analyticsワークスペースの概要画面で「設定」 > 「データ エクスポート」を選択し、「新しいエクスポートルール」ボタンをクリックします。
![process_021.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/bf693394-b1f1-0905-eb87-b3e6038e515f.jpeg)

ルール名を設定し、「次へ」ボタンをクリックします。
![process_022.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/ead28e41-db7c-5d82-0e76-926d5b02d370.jpeg)

エクスポート対象となるデータテーブルを選択し、「次へ」ボタンをクリックします。
- エクスポート機能は全てのテーブルをサポートしていません。利用したいデータがサポート対象かは以下のページで確認してください。
	  参考：[サポート対象のテーブル](https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/logs-data-export?tabs=portal#supported-tables)
![process_023.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/6c9a9c7b-e6e2-b7b3-fa71-3fd7a311d33b.jpeg)

データのエクスポート先として、先ほど作成したEvent Hubを指定し、「次へ」ボタンをクリックします。
![process_024.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/7a43d61f-55b4-5a8b-e9cd-cf159e301372.jpeg)

エクスポートルールの設定内容を確認し、「作成」ボタンをクリックして作成完了です。
![process_025.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871769/0dabc08a-8814-4ce1-0d21-92ff42acd66e.jpeg)



エクスポートルールが作成された段階からAzure Monitorで収集したログデータがEvent Hubまで連携されるようになります。
Event Hubに連携されたデータは共有アクセスポリシーのキーを利用して外部から受信可能となります。

# 参考
https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/logs-data-export
https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/ingest-logs-event-hub
https://jpazmon-integ.github.io/blog/LogAnalytics/LogAnalyticsworkspaceDataExport/
https://blog.jbs.co.jp/entry/2023/10/10/133712
https://qiita.com/pienhalifax/items/135ba2a4f32d08938eaa