アクティビティログをAzure Monitor ログ(Log Analytics)へ転送して検索

Azure,Log Analytics,Monitor

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

Azure アクティビティ ログ

Azure Portalのモニターから見る事が出来ますが検索が不便だったりします。
アクティビティログをLog Analyticsワークスペースへ転送すると、Azure Portalより詳細にログ検索したりログ自体を長期保管出来ます。

今回はアクテビティログのLog Analyticsワークスペースへの転送設定からKQLを使った検索までやってみました。

スポンサーリンク

AzureアクティビティログをLog Analyticsワークスペースへ転送

アクティビティログはAzure Portal、Azure CLI、PowerShell等で確認出来る

アクティビティログはAzure Portalのモニターにあるアクティビティログで確認が出来ます。
Azure CLIやPowerShellを使ったアクテビティログの取得も出来ます。

アクティビティログ

Azure PortalのモニターにあるアクティビティログでAzure全体のアクティビティログを確認する事が出来ます。

アクティビティログの検索はLog Analyticsワークスペースを使うと便利

アクティビティログはAzure Portalで確認が出来ます。
キーワードやフィルターを組合せた検索できません。
Log Analyticsワークスペースへアクテビティログ転送して、Log Analyticsワークスペース上でKQLを使った検索した方がより詳細に検索出来ます。

アクティビティログの通常の保管期間は90日間

アクティビティログはAzureプラットフォームで保管されます。
Azureプラットフォームでの保管期間は90日です。
この期間を延長して保管する為にはLog Analyticsワークスペース、ストレージアカウントへ転送する事で保管期間を延ばす事が可能になります。
Log Analyticsワークスペースの場合は保管期間が2年間になります。

Log Analyticsワークスペースへ転送する場合は診断設定

アクティビティログにも診断設定があります。
診断設定を使ってLog Analyticsワークスペース、ストレージアカウント、Event Hub(外部リソース)等にログ転送が出来ます。

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

アクティビティログの診断設定でAzure Monitorログ(Log Analyticsワークスペース)へ転送設定してみます。
事前に準備しておいたLog Analyticsワークスペース(ワークスペース名:ActivityLog-LogAna-WorkSpace)へ転送します。

アクティビティログの診断設定
モニターのメニューでアクティビティログを選択します。
診断設定が表示されるので選択します。

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

ログのカテゴリで転送するアクティビティログ内容を選択します。
Log Analyticsワークスペースへの転送をチェックします。
転送するLog Analyticsワークスペースを選択します。
診断設定の名前を付けたら保存をクリックします。

※アクティビティログのカテゴリ詳細については公式サイトを参照願います。
※アクティビティログ転送量に応じたLog Analyticsワークスペースの課金が発生します。
※転送開始されるまでには5分~10分ほど待つ必要があります。

Log Analyticsワークスペースの作成やKQLについてはこちら。

AzureアクティビティログをLog Analyticsワークスペースで確認

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

Log Analyticsワークスペースでアクティビティログを表示してみます。

アクティビティログを表示
アクティビティログの転送が開始されるとLogManagementにAzureActivityと言う項目が表示されます。

クエリに”AzureActivity”と入力して実行すると転送されたアクティビティログをすべて表示する事が出来ます。 

検索結果にアクティビティログが表示されます。

※表示項目は列を選択する事で指定する事が可能です。クエリ内で指定する場合はprojectを使います。

Azure VM起動時のアクティビティログを検索

Log Analyticsワークスペースでアクティビティログの検索してみます。
今回は仮想マシン(Azure VM)起動時のアクティビティログを確認してみます。

アクティビティログの検索
モニターのアクティビティログでアクティビティログの詳細を確認します。
アクティビティログでJSONタブを開くとアクティビティログの詳細が表示されます。

アクティビティログのJSONを確認するとAuthorizationと言う項目にVM名やアクション名が表示されている事が分かります。

VM名はwhere Authorization contains “TEST-VM-01″として絞り込んでいます。
VM起動時のアクションはAuthorization contains “Microsoft.Compute/virtualMachines/start/action"で絞り込んでいます。

それぞれをand条件で組み合わせて検索しています。

KQLサンプル(VM(Test-VM-01)起動時のアクティビティログ)

AzureActivity
|where Authorization contains “TEST-VM-01" and Authorization contains “Microsoft.Compute/virtualMachines/start/action"
|project TimeGenerated,OperationNameValue,ActivityStatusValue,ActivitySubstatusValue

KQLでリソースIDからリソース名を抽出する方法についてはこちらに纏めています。

Azure VM起動停止時や作成時のアクテビティログについてはこちら。

最後に

アクティビティログの診断設定を使ってLog Analyticsワークスペースへの転送が出来る事が分かりました。
Log Analyticsワークスペースを使ってアクテビティログを簡単に検索が出来る事が分かりました。
色んな作業の集計やリソース正常性の除法取得とかも非常に簡単に出来そうです。
今後も継続して色々試してみたいと思います。

スポンサーリンク