はじめに
甲子園ついに始まりましたね。私は、毎年この時期が一番楽しいです。
さて、本記事ではLog Analytics Workspaceのデータエクスポートについて触れていきます。
ビギナー向けの内容になっております。
目次
データエクスポートとは
送信されたデータ形式
設定方法
・LogAnalyticsWorkspaceでデータエクスポートの設定をする
・StorageAccountのネットワーク設定
・LogAnalyticsWorkspaceのネットワーク分離
参考文献
データエクスポートとは
Log Analytics Workspaceで設定可能な機能となります。Azure Monitor Pipelineに到着したデータをStorageAccountまたはイベントハブへ送信ができます。
データエクスポートを実装することで、以下のように収集したログをLog Analytics WorkspaceとStorage Account(Azure Blob Storage)へ並行でログを格納することができます。
上図にもあるように、TransformKQLで変換した後のデータをStorage Accountとイベントハブへ送信できます。
送信されたデータ形式
Storage Accountへ送信したデータは以下のような形式で格納されます。
なお、コンテナやディレクトリはStorage Accountに存在しない場合もデータの出力時に自動で作成されます。
◇コンテナ名
Storage Accountへ以下のコンテナに出力されます。
- am-<テーブル名>
例えば「swlogs_cl」というテーブル名をデータエクスポートする場合、「am-swlogs_cl」というコンテナ名になります。
◇ディレクトリパス
ディレクトリパスは以下のようになります。
WorkspaceResourceId=/subscriptions/subscription-id/resourcegroups/<リソース グループ>/providers/microsoft.operationalinsights/workspaces/<ワークスペース>/y=<4 桁の数値年>/m=<2 桁の数値月>/d=<2 桁の数値日>/h=<2 桁の 24 時制の時間>/m=<2 桁の 60 分制の分>
最後の「m=<2 桁の 60 分制の分>」は5分毎に作成されます。
◇ファイル
JSON形式で出力します。以下のファイルに出力されます。
- PT05M.json
5分間、ひたすらこちらの「PT05M.json」ファイルに出力されますが、書き込み件数が5万件という制限があり溢れた分は「PT05M_<連番>.json」といった形で別のファイルに出力されます。
ファイルの中身はこんな感じとなります。(参考までに)
設定方法
極めて簡単です。大きな流れは以下です。
- 仮想マシンからLog Analyticsへのデータ収集ルールを作成する
- Azure Storage Account並びにBlobを作成する
- LogAnalytics Workspaceでデータエクスポートの設定をする
1と2は本記事では割愛します。趣旨と外れるので、またの機会に紹介しますね。
参考までに以下記事がおすすめです。
LogAnalyticsWorkspaceでデータエクスポートの設定をする
①Azure Portalからデータエクスポートの設定をしたいLog Analytics Workspaceの設定ページを開き、「データエクスポート」を選択します。
④データエクスポートを行うテーブルを選択して画面下の「次へ」をクリックします。
テーブル名の左側のチェックボックスをクリックすることで、全テーブルの選択もできます。
(カスタムテーブルは後ろに_CLが付きます。)
⑤送信先の指定をして「次へ」をクリックします。
◇Storage Accountの場合
- サブスクリプション
- Storage Account
◇イベントハブの場合
- サブスクリプション
- イベントハブの名前空間
- イベントハブ名
⑥「確認および作成」タブで「作成」をクリック
以上で、エクスポートルールの作成ができました。
後は、ログをLog Analytics Workspaceに送ってテストをしてみましょう。
StorageAccountのネットワーク設定
Storage Account側で完全にパブリック通信を遮断すると、Azure Monitorからの通信を受け取れずStorage Accountがエクスポートされたログを受け取れません。そのため、Storage AccountにはAzureサービスからのパブリック通信を許可する設定が必要です。
そのため、以下のようにFWを無効にしておくか、
FWを有効にする場合は、「信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します。」を有効にしておく必要があります。
LogAnalyticsWorkspaceのネットワーク分離
Log Analytics Workspace側の「ネットワークの分離」設定はデータエクスポートには影響していないみたいでした。こちらは、あくまでログの収集とクエリに対してのみ影響を持つみたいです。