次の方法で共有


Azure Monitor のアクティビティ ログ

Azure Monitor アクティビティ ログは、Azure リソースからのコントロール プレーン イベントのプラットフォーム ログです。 これには、リソースが変更されたときやデプロイ エラーが発生した場合などの情報が含まれます。 アクティビティ ログを使用して、監視するリソースについてこの情報を確認または監査するか、イベントが作成されたときに事前に通知されるアラートを作成します。

ヒント

デプロイ操作エラーからこの記事に指示された場合は、「 一般的な Azure デプロイ エラーのトラブルシューティング」を参照してください。

アクティビティ ログ エントリ

アクティビティ ログのエントリは既定で収集され、構成は必要ありません。 これらはシステムによって生成され、変更または削除することはできません。 通常、エントリは変更 (作成、更新、削除操作) または開始されたアクションの結果です。 リソースの詳細の読み取りに重点を置いた操作は、通常はキャプチャされません。 アクティビティ ログ カテゴリの説明については、 Azure アクティビティ ログ イベント スキーマに関するページを参照してください。

コントロール プレーン上の操作は 、Azure リソース ログに記録されます。 これらは既定では収集されず、 診断設定 を収集する必要があります。

保持期間

アクティビティ ログ イベントは Azure に 90 日間 保持され、削除されます。 ボリュームに関係なく、この期間中のエントリに対して料金は発生しません。 保持期間を長くするなど、より多くの機能を使用するには、診断設定を作成し、ニーズに基づいて エントリを別の場所にルーティング します。

アクティビティ ログの表示と取得

アクティビティ ログには、Azure portal のほとんどのメニューからアクセスできます。 開くメニューによって、最初のフィルターが決まります。 [監視] メニューから開くと、サブスクリプションに対するフィルターのみが表示されます。 リソースのメニューから開くと、フィルターはそのリソースに対して設定されます。 いつでもフィルターを変更して、他のすべてのエントリを表示できます。 フィルターにプロパティを追加するには、[フィルターの追加 ] を選択します。

アクティビティ ログを示すスクリーンショット。

次の方法を使用して、アクティビティ ログ イベントにアクセスすることもできます。

  • REST クライアントからアクティビティ ログを取得するには、Azure Monitor REST API を使用します。

変更履歴を表示する

イベントによっては、変更履歴を表示することができます。そこには、そのイベントの間に発生した変更が表示されます。 アクティビティ ログから、詳細を確認したいイベントを選びます。 [ 変更履歴 ] タブを選択すると、操作の時刻の最大 30 分前と後にリソースに対する変更が表示されます。

イベントの変更履歴リストを示すスクリーンショット。

イベントに関連する変更がある場合は、表示される変更のリストから選ぶことができます。 変更を選択すると、[ 変更履歴 ] ページが開きます。 このページには、リソースに対する変更が表示されます。 次の例では、VM のサイズが変更されていることがわかります。 ページには、変更前と変更後の VM サイズが表示されます。 変更履歴の詳細については、「リソースの 変更を取得する」を参照してください。

違いを示す [変更履歴] ページを示すスクリーンショット。

アクティビティ ログの分析情報

アクティビティ ログ分析情報は、サブスクリプション内のリソースとリソース グループへの変更を監視する一連のダッシュボードを提供するブックです。 ダッシュボードには、サブスクリプションでアクティビティを実行したユーザーまたはサービスとアクティビティの状態に関するデータも表示されます。

アクティビティ ログの分析情報を有効にするには、「アクティビティ ログのエクスポート」の説明に従って、 アクティビティ ログを Log Analytics ワークスペースにエクスポートします。 これにより、アクティビティ ログ分析情報によって使用される AzureActivity テーブルにイベントが送信されます。

アクティビティ ログの分析情報ダッシュボードを示すスクリーンショット。

アクティビティ ログの分析情報は、サブスクリプションまたはリソース レベルで開くことができます。 サブスクリプションの場合は、[監視] メニューの [ワークブック] セクションから [アクティビティ ログの分析情報] を選択します。

スケール レベルで「アクティビティログ インサイト ワークブック」を探して開く方法を示すスクリーンショット。

個々のリソースの場合は、リソースのメニューの ワークブック セクションから アクティビティ ログの分析情報 を選択します。

リソース レベルで Activity Logs Insights ブックを見つけて開く方法を示すスクリーンショット。

アクティビティ ログのエクスポート

追加の保持時間と機能のために、アクティビティ ログ エントリを他の宛先に送信する診断設定を作成します。 診断設定を作成する詳細な手順については、Azure Monitor の診断設定を参照してください。

アクティビティ ログ、リソース ログ、プラットフォーム メトリックのコレクションを示す図。

以下の情報は、リソース ログの送信先の詳細を示しています。

次の機能のために、アクティビティ ログを Log Analytics ワークスペース に送信します。

  • ログ クエリを使用して、アクティビティ ログを他のログ データと関連付 ける
  • アクティビティ ログ アラート よりも複雑なロジックを使用できる ログ アラートを作成します
  • Power BI を使用してアクティビティ ログ データにアクセスします。
  • 90 日を超えるアクティビティ ログ データを保持します。

既定の保持期間が 90 日間のアクティビティ ログには、データ インジェストまたはリテンション期間の料金が発生します。 保持期間を最大 12 年まで増やすことができます。

Log Analytics ワークスペースのアクティビティ ログ データは、 AzureActivity というテーブルに格納されます。 このテーブルの構造はログ エントリのカテゴリによって異なります。

たとえば、各カテゴリのアクティビティ ログ レコードの数を表示するには、次のクエリを使用します。

AzureActivity
| summarize count() by CategoryValue

管理カテゴリのすべてのレコードを取得するには、次のクエリを使用します。

AzureActivity
| where CategoryValue == "Administrative"

重要

シナリオによっては、AzureActivity のフィールドの値が、大文字と小文字の区別が異なるだけで、それ以外の点では同じ値である場合があります。 AzureActivity のデータに対してクエリを実行する際には、文字列比較に大文字と小文字を区別しない演算子を使用するか、比較を行う前に、スカラー関数を使用してフィールドの大文字と小文字の区別を統一します。 例えば、フィールドに tolower() 関数を使用して常に小文字にする、または、文字列を比較する際に =~ 演算子を使用します。

CSV にエクスポート

Azure portal を使用してアクティビティ ログを CSV ファイルにエクスポートするには、[ 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."

次のステップ

詳細については、以下をご覧ください。