たれながし.info

とあるITエンジニアの備忘録

Log AnalyticsからPowerShellで分析結果をCSVへエクスポートする

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

ワークスペースIDの確認

Log Analyticsのログ保管場所を「ワークスペース」と言います。
ワークスペース」には一意のIDが付与されているので、Azure Portalから確認します。


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」の仕様は以下の通りです。

docs.microsoft.com

docs.microsoft.com