共用方式為

Azure Monitor 中的活动日志

Azure Monitor 活动日志是用于记录 Azure 资源控制平面事件的平台日志。 它包括诸如修改资源的时间或发生部署错误时等信息。 使用活动日志查看或审核所监视的资源的此信息,或创建警报,以便在创建事件时主动通知。

小窍门

如果因部署操作错误而定向到本文,请参阅 排查常见的 Azure 部署错误

活动日志条目

活动日志中的条目默认收集,无需配置。 它们是系统生成的,无法更改或删除。 条目通常是变更(创建、更新、删除操作)或已启动的操作或动作的结果。 通常不会捕获专注于读取资源详细信息的操作。 有关活动日志类别的说明,请参阅 Azure 活动日志事件架构

注释

控制平面以上的操作会记录在 Azure 资源日志中。 默认情况下不会收集这些,需要有 诊断设置 来收集。

保留期

活动日志事件在 Azure 中保留 90 天 ,然后删除。 在此期间,无论条目数量多少,都无需付费。 有关更多功能(例如更长的保留期),请创建诊断设置,并根据需求 将条目路由到另一个位置

查看和检索活动日志

可以从 Azure 门户中的大多数菜单访问活动日志。 从你打开的菜单将决定其初始筛选条件。 如果从 “监视 ”菜单打开它,则唯一的筛选器位于订阅上。 如果从资源的菜单中打开它,筛选器将设置为该资源。 始终可以更改筛选器以查看所有其他条目。 选择 “添加筛选器 ”以向筛选器添加更多属性。

显示活动日志的屏幕截图。

还可以使用以下方法访问活动日志事件:

查看更改历史记录

对于某些事件,可以查看更改历史记录,其中显示了在该事件时间发生的更改。 从要更深入地查看的活动日志中选择一个事件。 选择变更记录选项卡,查看操作前30分钟和之后对资源所做的任何更改。

显示事件的“更改历史记录”列表的屏幕截图。

如果有任何更改与事件相关联,你将看到一个可以选择的更改列表。 选择更改将打开 “更改历史记录 ”页。 此页面显示对资源的更改。 在以下示例中,可以看到 VM 已更改大小。 该页在更改之前和更改后显示 VM 大小。

显示“更改历史记录”页的屏幕截图,其中显示了差异。

活动日志见解

活动日志分析是一个工作簿,它提供一组仪表板,用于监控订阅中资源及资源组的变动。 仪表板还显示有关哪些用户或服务在订阅中执行了活动以及活动状态的数据。

若要启用活动日志见解,请将活动日志导出到 Log Analytics 工作区,如 导出活动日志中所述。 这会将事件发送到供活动日志分析使用的AzureActivity表。

显示活动日志见解仪表板的屏幕截图。

可以在订阅或资源级别打开活动日志见解。 对于订阅,请从“工作簿”部分选择“活动日志见解”并在“监视器”菜单中查看。

显示如何在规模层面查找和打开活动日志见解工作簿的屏幕截图。

对于单个资源,请从资源菜单的“工作簿”部分选择“活动日志见解”。

显示如何在资源级别查找和打开活动日志见解工作簿的屏幕截图。

导出活动日志

创建一个诊断设置,用于将活动日志条目发送到其他目标,以获取额外的保留时间和功能。

显示活动日志、资源日志和平台指标集合的关系图。

在 Azure 门户中,在 Azure Monitor 菜单上选择“活动日志”,然后选择“导出活动日志”。 有关创建诊断设置的其他详细信息和其他方法,请参阅 Azure Monitor 中的 诊断设置。 请确保 禁用活动日志的任何旧配置

显示 Azure Monitor 菜单的屏幕截图,其中选择了“活动日志”,并在 Monitor-Activity 日志菜单栏中突出显示了“导出活动日志”。

以下信息提供有关可将资源日志发送到的不同目标的更多详细信息。

注释

导出活动日志的旧方法是日志配置文件。 请参阅 旧集合方法

将活动日志发送到 Log Analytics 工作区 以获取以下功能:

活动日志的默认保留期为 90 天,期间会收取数据引入或保留费用。 可将 保留期增加到 最多 12 年。

Log Analytics 工作区中的活动日志数据存储在名为 AzureActivity 的表中。 此表的结构因 日志条目的类别而异。

例如,若要查看每个类别的活动日志记录计数,请使用以下查询:

AzureActivity
| summarize count() by CategoryValue

若要检索管理类别中的所有记录,请使用以下查询:

AzureActivity
| where CategoryValue == "Administrative"

重要

在某些情况下,字段的值 AzureActivity 可能与其他等效值不同。 查询AzureActivity的数据时,使用不区分大小写的运算符进行字符串比较,或使用标量函数在进行任何比较之前将字段强制转换为统一大小写。 例如,使用 tolower() 函数让字段始终为小写,或者在执行字符串比较时使用 =~ 运算符

导出到 CSV

选择“ 下载为 CSV ”,使用 Azure 门户将活动日志导出到 CSV 文件。

显示导出到 CSV 的选项的屏幕截图。

重要

如果存在大量日志条目,导出可能需要过多的时间。 若要提高性能,请减少导出的时间范围。 在 Azure 门户中,这是通过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 脚本每隔一小时将活动日志导出到 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."

后续步骤

了解有关以下方面的详细信息: