Log AnalyticsからPowerShellを使ってログ分析結果をCSVエクスポートしてみる。
はじめに
AzureにはLog Analyticsというログ管理ソリューションがあります。
Log Analyticsを使うと、クラウド上にログを保管してKQLというクエリでログを分析するといったことができます。
AzureにはMicrosoft SentinelというSIEM/SOARソリューションがありますが
Microsoft Sentinelも構成要素として、Log Analyticsを利用します。
この記事では、Log AnalyticsからPowerShellを使ってログ分析結果をCSVエクスポートする手順を記載します。
ログのCSVエクスポート実施方法
Azure Azモジュールのインストール
まず「Azure Azモジュール」をインストールします。
「Azure Azモジュール」はAzure関連のPowerShellを実行するのに必要です。
PowerShellを起動して、下記を実行します。完了まで数分掛かります。
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force
インストールに関する説明は、MSの公式サイトにあります。
docs.microsoft.com
CSVエクスポートの実行
「ワークスペースID」と「KQLクエリ」を指定して「Invoke-AzOperationalInsightsQuery」を実行することで分析結果を取得します。
その後「Export-CSV」で結果をCSVで出力します。
下記は「Azure ADの対話型サインインログ(SigninLogs)」から直近1日分を出力する例です。
$workspaceid = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" $query = @" SigninLogs | where TimeGenerated > ago(1d) "@ # Azureに接続する Connect-AzAccount # Log Analyticsから分析結果を取得 $queryResults = Invoke-AzOperationalInsightsQuery -WorkspaceId $workspaceid -Query $query $queryResults.Results | Export-CSV -Path out.csv -Encoding Default
最後に
今回利用した「Connect-AzAccount」「Invoke-AzOperationalInsightsQuery」の仕様は以下の通りです。