Azure Monitor アクティビティ ログは、Azure リソースからのコントロール プレーン イベントのプラットフォーム ログです。 これには、リソースが変更されたときやデプロイ エラーが発生した場合などの情報が含まれます。 アクティビティ ログを使用して、監視するリソースについてこの情報を確認または監査するか、イベントが作成されたときに事前に通知されるアラートを作成します。
ヒント
デプロイ操作エラーからこの記事に指示された場合は、「 一般的な Azure デプロイ エラーのトラブルシューティング」を参照してください。
アクティビティ ログ エントリ
アクティビティ ログのエントリは既定で収集され、構成は必要ありません。 これらはシステムによって生成され、変更または削除することはできません。 通常、エントリは変更 (作成、更新、削除操作) または開始されたアクションの結果です。 リソースの詳細の読み取りに重点を置いた操作は、通常はキャプチャされません。 アクティビティ ログ カテゴリの説明については、 Azure アクティビティ ログ イベント スキーマに関するページを参照してください。
注
コントロール プレーン上の操作は 、Azure リソース ログに記録されます。 これらは既定では収集されず、 診断設定 を収集する必要があります。
保持期間
アクティビティ ログ イベントは Azure に 90 日間 保持され、削除されます。 ボリュームに関係なく、この期間中のエントリに対して料金は発生しません。 保持期間を長くするなど、より多くの機能を使用するには、診断設定を作成し、ニーズに基づいて エントリを別の場所にルーティング します。
アクティビティ ログの表示と取得
アクティビティ ログには、Azure portal のほとんどのメニューからアクセスできます。 開くメニューによって、最初のフィルターが決まります。 [監視] メニューから開くと、サブスクリプションに対するフィルターのみが表示されます。 リソースのメニューから開くと、フィルターはそのリソースに対して設定されます。 いつでもフィルターを変更して、他のすべてのエントリを表示できます。 フィルターにプロパティを追加するには、[フィルターの追加 ] を選択します。
次の方法を使用して、アクティビティ ログ イベントにアクセスすることもできます。
- PowerShell からアクティビティ ログを取得するには、Get-AzLog コマンドレットを使用します。 「Azure Monitor PowerShell のサンプル」を参照してください。
- CLI からアクティビティ ログ エントリを取得するには、az monitor activity-log を使用します。 Azure Monitor CLI のサンプルをご覧ください。
- REST クライアントからアクティビティ ログを取得するには、Azure Monitor REST API を使用します。
変更履歴を表示する
イベントによっては、変更履歴を表示することができます。そこには、そのイベントの間に発生した変更が表示されます。 アクティビティ ログから、詳細を確認したいイベントを選びます。 [ 変更履歴 ] タブを選択すると、操作の時刻の最大 30 分前と後にリソースに対する変更が表示されます。
イベントに関連する変更がある場合は、表示される変更のリストから選ぶことができます。 変更を選択すると、[ 変更履歴 ] ページが開きます。 このページには、リソースに対する変更が表示されます。 次の例では、VM のサイズが変更されていることがわかります。 ページには、変更前と変更後の VM サイズが表示されます。 変更履歴の詳細については、「リソースの 変更を取得する」を参照してください。
アクティビティ ログの分析情報
アクティビティ ログ分析情報は、サブスクリプション内のリソースとリソース グループへの変更を監視する一連のダッシュボードを提供するブックです。 ダッシュボードには、サブスクリプションでアクティビティを実行したユーザーまたはサービスとアクティビティの状態に関するデータも表示されます。
アクティビティ ログの分析情報を有効にするには、「アクティビティ ログのエクスポート」の説明に従って、 アクティビティ ログを Log Analytics ワークスペースにエクスポートします。 これにより、アクティビティ ログ分析情報によって使用される AzureActivity
テーブルにイベントが送信されます。
アクティビティ ログの分析情報は、サブスクリプションまたはリソース レベルで開くことができます。 サブスクリプションの場合は、[監視] メニューの [ワークブック] セクションから [アクティビティ ログの分析情報] を選択します。
個々のリソースの場合は、リソースのメニューの ワークブック セクションから アクティビティ ログの分析情報 を選択します。
アクティビティ ログのエクスポート
追加の保持時間と機能のために、アクティビティ ログ エントリを他の宛先に送信する診断設定を作成します。 診断設定を作成する詳細な手順については、Azure Monitor の診断設定を参照してください。
以下の情報は、リソース ログの送信先の詳細を示しています。
次の機能のために、アクティビティ ログを Log Analytics ワークスペース に送信します。
- ログ クエリを使用して、アクティビティ ログを他のログ データと関連付 ける。
- アクティビティ ログ アラート よりも複雑なロジックを使用できる ログ アラートを作成します。
- Power BI を使用してアクティビティ ログ データにアクセスします。
- 90 日を超えるアクティビティ ログ データを保持します。
既定の保持期間が 90 日間のアクティビティ ログには、データ インジェストまたはリテンション期間の料金が発生します。 保持期間を最大 12 年まで増やすことができます。
Log Analytics ワークスペースのアクティビティ ログ データは、 AzureActivity というテーブルに格納されます。 このテーブルの構造はログ エントリのカテゴリによって異なります。
たとえば、各カテゴリのアクティビティ ログ レコードの数を表示するには、次のクエリを使用します。
AzureActivity
| summarize count() by CategoryValue
管理カテゴリのすべてのレコードを取得するには、次のクエリを使用します。
AzureActivity
| where CategoryValue == "Administrative"
CSV にエクスポート
Azure portal を使用してアクティビティ ログを CSV ファイルにエクスポートするには、[ CSV としてダウンロード ] を選択します。
重要
大量のログ エントリがある場合、エクスポートに過剰な時間がかかる可能性があります。 パフォーマンスを向上させるには、エクスポートの時間範囲を減らします。 Azure portal では、これは Timespan 設定で設定されます。
次の例のように、PowerShell または Azure CLI を使用して、アクティビティ ログを CSV ファイルにエクスポートすることもできます。
az monitor activity-log list --start-time "2024-03-01T00:00:00Z" --end-time "2024-03-15T23:59:59Z" --max-items 1000 > activitylog.json
Get-AzActivityLog -StartTime 2021-12-01T10:30 -EndTime 2022-01-14T11:30 | Export-csv operations_logs.csv
次の PowerShell スクリプトの例では、アクティビティ ログを 1 時間間隔で CSV ファイルにエクスポートし、それぞれを別のファイルに保存します。
# Parameters
$subscriptionId = "Subscription ID here" # Replace with your subscription ID
$startTime = [datetime]"2025-05-08T00:00:00" # Adjust as needed
$endTime = [datetime]"2025-05-08T12:00:00" # Adjust as needed
$outputFolder = "\Logs" # Change path as needed
# Ensure output folder exists
if (-not (Test-Path $outputFolder)) {
New-Item -Path $outputFolder -ItemType Directory
}
# Set subscription context
Set-AzContext -SubscriptionId $subscriptionId
# Loop through 1-hour intervals
$currentStart = $startTime
while ($currentStart -lt $endTime) {
$currentEnd = $currentStart.AddHours(1)
$timestamp = $currentStart.ToString("yyyyMMdd-HHmm")
$csvFile = Join-Path $outputFolder "ActivityLog_$timestamp.csv"
Write-Host "Fetching logs from $currentStart to $currentEnd..."
Get-AzActivityLog -StartTime $currentStart -EndTime $currentEnd |
Export-Csv -Path $csvFile -NoTypeInformation
$currentStart = $currentEnd
}
Write-Host "Export completed. Files saved to $outputFolder."
次のステップ
詳細については、以下をご覧ください。