アクティビティログの診断設定やLog Analyticsワークスペースでの検索方法

2022-02-20Azure,Log Analytics,Monitor

アクティビティログ(Azure Monitor Activity Log)の診断設定手順や、Log Analyticsワークスペースでのアクティビティログ検索方法です。

Azureで発生したイベント(リソースの作成、変更、削除や起動・停止の操作など)は、アクティビティログに出力されます。

Azure アクティビティ ログ

診断設定を利用すると、アクティビティログをLog Analyticsワークスペースへ転送することができます。
外部リソースへ転送することで、ログ自体を長期保管したり、複数のサブスクリプションやテナントのアクティビティログをまとめて閲覧することができます。

今回はアクティビティログの確認方法、診断設定を使ったLog Analyticsワークスペースへの転送設定手順、KQLを使ったアクティビティログの検索例について紹介します。

※本記事では、Azure Monitor Activity Logをアクテビティログとして表記しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。

スポンサーリンク

アクティビティログの確認方法や診断設定手順

Azure Portalでアクティビティログを確認

アクティビティログはAzure Portalで確認できます。
各リソースのアクティビティログのメニューやモニターにあるアクティビティログで確認できます。
リソースのアクティビティログで確認した場合は、該当のリソースのみが表示されるようにフィルターされています。

アクティビティログの表示例

モニターのアクティビティログ
Azure Monitorのアクティビティログ表示例

仮想マシンのアクティビティログ

仮想マシン(Azure VM)のアクティビティログ表示例

Azure CLIやPowerShellでもアクティビティログは確認できる

Azure CLIやPowerShellを使って、アクティビティログを取得できます。

Azure PowerShellの場合は"Get-AzLog"を利用します。

Get-AzLog

Azure CLIの場合は"az monitor activity-log"を利用します。
アクティビティログを表示する場合は"az monitor activity-log list"を使用します。

az monitor activity-log list

アクティビティログをAzure Monitorのログで確認

アクティビティログのメニューでもフィルターや検索がありますが、細かい検索機能はありません。
Azure モニターにあるログのメニューを選択すると、Log Analyticsワークスペースのログの画面が表示されます。
KQLクエリを使ってアクティビティログを検索できます。

アクティビティログを表示

左側のメニューでログを選択します。
テーブルを選択します。
LogManagementにあるAzure Activityで実行を選択します。
KQLモードの場合はクエリ欄に"AzureActivity"と入力し実行します。
アクティビティログが表示されます。

Azure Monitorのログでアクティビティログを表示(簡易モード)
Azure Monitorのログでアクティビティログを表示(KQLモード)

※新しい Log Analyticsの画面を利用しています。

アクティビティログ保管期間は90日間だが診断設定を使って延長できる

アクティビティログはAzureプラットフォームで保管されます。
Azureプラットフォームでの保管期間は90日です。
Log Analyticsワークスペースやストレージアカウントへ転送する事で、アクティビティログの保管期間を延ばせます。
対話型保持(検索可能な状態)では最大2年、アーカイブを利用すると最大12年間保持できます。

Azure Monitor ログでのデータ保持とアーカイブ

Log Analyticsワークスペース、ストレージアカウント、Event Hub等の外部リソースにアクティビティログを転送する場合は、診断設定を利用します。

アクティビティログの診断設定の手順

診断設定を使ってアクティビティログを外部リソースへ転送します。
今回はLog Analyticsワークスペースへ転送します。
Log Analyticsワークスペースは事前に準備しておいたものを利用しています。

アクティビティログの診断設定
モニターのメニューでアクティビティログを選択します。
診断設定を選択します。
診断設定を選択(Azure Monitorのアクティビティログの診断設定手順)

アクティビティログの診断設定画面が表示されます。
診断設定を追加するを選択します。

診断設定の追加を選択(Azure Monitorのアクティビティログの診断設定手順)

転送対象のアクティビティログのカテゴリを選択します。
Log Analyticsワークスペースへの送信にチェックを入れます。
送信先のLog Analyticsワークスペースを選択します。
診断設定に名前を付けて保存します。
追加した診断設定が表示されます。

アクティビティログのカテゴリの詳細については、公式サイトを参照してください。

Categories

 

診断設定でカテゴリや転送先のLog Analyticsワークスペースを選択(Azure Monitorのアクティビティログの診断設定手順)
追加した診断設定を表示(Azure Monitorのアクティビティログの診断設定手順)

※診断設定先に指定したLog Analyticsワークスペースの課金が発生します。課金額はアクティビティログの転送量によります。
※転送開始されるまでには5分~10分ほど待つ必要があります。

アクティビティログの診断設定を削除

アクティビティログの診断設定の削除手順です。

アクティビティログの診断設定を削除
診断設定で設定の編集を選択します。 診断設定で設定の編集を選択

アクティビティログの診断設定画面が表示されます。
削除を選択します。

Azure Monitorのアクティビティログの診断設定を削除

Log Analyticsワークスペースの作成手順やKQLクエリについてはこちらで紹介しています。

—広告—

Log Analyticsワークスペースでアクティビティログを検索、表示

クエリのスコープ設定

Log AnalyticsワークスペースでKQLクエリを実行する際に、検索対象のスコープを設定できます。

※新しいLog Analyticsの画面を利用した場合です。

スコープ設定
クエリタブにスコープ設定があります。
範囲を選択します。
今回はサブスクリプションを選択しています。
スコープ設定(KQLクエリのスコープ設定)
スコープの範囲を選択(KQLクエリのスコープ設定)

Log Analyticsワークスペースでアクティビティログを表示

Log Analyticsワークスペースでアクティビティログを表示します。
診断設定でアクティビティログ転送先に指定した、Log Analyticsワークスペースを選択します。
アクティビティログの表示は、簡易モードとKQLモードで確認しています。

アクティビティログを表示

LogManagementにAzureActivityという項目が表示されます。

クエリに"AzureActivity"と入力して実行すると、転送されたアクティビティログをすべて表示することができます。

簡易モード時

LogManagementでAzureActivtyを表示(簡易モード)

KQLモード時

KQLモードでAzureActivtyを表示(診断設定を利用)

※表示項目は列を選択することで指定することが可能です。KQLクエリ内で指定する場合は、projectを使用します。

仮想マシン起動、停止時のアクティビティログを検索

Log Analyticsワークスペースでアクティビティログを検索します。
今回は仮想マシンの起動、停止(割り当て解除)時のアクティビティログを確認します。

    • 仮想マシン起動時のOperartionName
      • “MICROSOFT.COMPUTE/VIRTUALMACHINES/START/ACTION"
    • 仮想マシン停止時(割り当て解除時)のOperartionName
      • “MICROSOFT.COMPUTE/VIRTUALMACHINES/DEALLOCATE/ACTION"

簡易モード、KQLモードどちらを使っても検索できます。

アクティビティログの検索
仮想マシンの左側のメニューでアクティビティログを選択します。
Start Virtual Machineのアクティビティログ表示し内容を確認します。
JSONタブを開くとアクティビティログの詳細が確認できます。
OperartionNameと言う項目に仮想マシンの操作内容が含まれています。
仮想マシン(Azure VM)起動時のアクティビティログをJSONタブで表示

フィルターの追加を選択します。
テーブル内を検索するを選択します。
OperartionNameValueを選択します。

MICROSOFT.COMPUTEが仮想マシンに関するアクティビティログです。チェックを入れて絞り込みます。
仮想マシンの操作に関するアクティビティログのみに絞り込みされました。

 

 

フィルターの追加でテーブル内を検索(簡易モードでアクティビティログの絞り込み手順)
OperartionNameValueのフィルターを追加(簡易モードでアクティビティログの絞り込み手順)
絞り込み後のアクティビティログ(簡易モードでアクティビティログの絞り込み手順)

次に特定の仮想マシンに絞り込みます。
Propertiesに仮想マシン名(test-vm-01)を含むと指定します。
絞り込みできました。

 

Propertiesで特定の仮想マシンに絞り込み(簡易モードでアクティビティログの絞り込み手順)
仮想マシン名で絞り込んだ後のアクティビティログ(簡易モードでアクティビティログの絞り込み手順)

KQLモードにすると、クエリの内容を確認できます。

KQLモードで絞り込みしたアクティビティログを表示

KQLサンプル(仮想マシン(test-vm-01)起動、停止に関するアクティビティログ)

AzureActivity
| where OperationNameValue in (“`MICROSOFT.COMPUTE/VIRTUALMACHINES/START/ACTION“`, “`MICROSOFT.COMPUTE/VIRTUALMACHINES/DEALLOCATE/ACTION“`)
| where Properties has “test-vm-01"

※Authorizationにはアクションやリソースの情報が含まれています。Azure Monitorでアラートルールを設定した場合は、Authorizationの内容が表示されます。

KQLクエリでリソースIDからリソース名を抽出する方法については、こちらで紹介しています。

仮想マシンの起動、停止、作成時のアクティビティログについては、こちらで紹介しています。

Log Analyticsワークスペースの削除手順については、こちらの記事で紹介しています。

最後に

今回はAzureアクティビティログの診断設定手順や、Log Analyticsワークスペースでのアクティビティログ検索方法について確認しました。
仮想マシンの起動や停止を例に検索手順を確認しています。
Log Analyticsワークスペースには簡易モードもあり、比較的簡単に検索することができました。

引き続き、いろいろ試してみたいと思います。

スポンサーリンク