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

Azure,Log Analytics,Monitor

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

Azure アクティビティ ログ

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

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

スポンサーリンク

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

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

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

アクティビティログ

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

アクティビティログを検索はAzure Monitorログ(Log Analytics)を使うと便利

 アクティビティログはAzure Portalで確認が出来ますがキーワードでしか検索できません。
 Azure Monitorログ(Log Analytics)へ転送するとAzure Monitorログ(Log Analytics)でKQLを使った検索が出来て非常に便利です。

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

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

アクティビティログの診断設定を使うとAzure Monitorログ(Log Analytics)へ転送できる。

 アクティビティログの診断設定を使うとAzure Monitorログ(Log Analytics)やストレージアカウント、Event Hubにログ転送が出来ます。
 Azure Monitorログ(Log Analytics)に転送する場合は、アクテビティログの診断設定で転送先のLog Analyticsワークスペースを指定します。

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

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

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

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

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

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

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

AzureアクティビティログをAzure Monitorログ(Log Analytics)で確認

Azure Monitorログ(Log Analytics)でアクティビティログを検索

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

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

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

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

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

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

Azure Monitorログ(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

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

最後に

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