你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Monitor中的活动日志

Azure Monitor通过活动日志功能记录Azure资源的管理操作。 活动日志记录操作,例如创建虚拟机、更改密钥保管库访问策略或资源管理器部署错误。 这些管理操作也称为 控制平面 操作。 使用活动日志查看或审核此信息,或创建警报,以在事件发生时主动通知。

与活动日志不同,Azure资源日志捕获在资源内执行的数据平面操作。 例如,这些操作包括从密钥保管库获取机密或向数据库发出请求。 默认情况下不会收集资源日志,并且需要使用 诊断设置进行配置。

小窍门

如果部署操作错误导致您访问本文,请参阅 排查常见的 Azure 部署错误

活动日志条目

默认情况下,Azure Monitor 收集活动日志条目,无需配置。 系统生成这些条目,不能更改或删除它们。 条目通常是由更改(创建、更新和删除操作)或正在启动的操作导致的。 活动日志通常不会捕获读取操作。

活动日志条目通常用于在 事件发生后的 3 到 20 分钟内进行分析和警报。 有关活动日志类别的说明,请参阅Azure活动日志事件架构

保留期

Azure 将活动日志事件保留 90 天 ,然后删除它们。 在此期间,日志项都是免费存储的,与卷无关。 有关更多功能(例如更长的保留期),请创建诊断设置,并根据需求 收集其他位置中的条目 。 延长保留期的最常见原因之一是保留 资源创建者信息,该信息仅在活动日志中可用。

查看和检索活动日志

查看订阅、资源组或单个资源的活动日志事件。 使用Azure门户,或使用 Activity Log REST API 以编程方式查询它们。

Azure 门户从大多数服务菜单中提供活动日志边栏选项卡。 其中每个区域还支持使用 REST 或通过特定的Azure CLI和Azure PowerShell命令进行编程访问。

指定要检索的事件的时间间隔。 若要使用 REST API 检索事件,必须包含 $filter 参数以及至少一个 eventTimestamp 起始值。 默认情况下,活动日志将事件保留 90 天。 确保时间范围的开始和结束时间都位于该 90 天时段内。

活动日志访问场景

以下部分演示了通过 Azure 门户、以编程方式使用Azure CLI和Azure PowerShell或 REST 调用访问和检索活动日志事件的不同方法的常见方案:

  • Azure门户示例提供有关该视图中预期事件类型的额外上下文。

  • Azure CLI示例突出显示通过 az monitor activity-log list 命令提供的特定命令。

  • Azure PowerShell 示例重点介绍了通过 Get-AzActivityLog cmdlet 可用的特定 cmdlet 命令。

  • REST API 示例演示如何通过$filter 使用所需的参数来检索事件。

    列出资源组的活动日志事件示例还演示了如何使用 Prefer 标头为客户端显式设置超时时间,使其与活动日志 REST API 的 75 秒最大超时时间保持一致。

    支持的 $filter 模式 详细信息
    具有时间范围的默认订阅 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}'
    资源组 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceGroupName eq '{resourceGroupName}'
    特定资源 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceUri eq '{resourceURI}'
    资源提供程序 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceProvider eq '{resourceProviderName}'
    相关 ID $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and correlationId eq '{correlationID}'

列出订阅的活动日志事件

订阅级别事件捕获由资源提供程序直接创建的事件,是列出活动日志事件的默认范围。 租户级别和管理组级别事件仅捕获这些层次结构中的 Azure 资源管理器事件。 这些更高级别的范围不包括由Azure 资源管理器操作外部的资源提供程序直接生成的事件。

以下示例在特定时间范围内检索订阅的活动日志事件。

从中打开 活动日志 的菜单确定其初始筛选器。 如果从 “监视 ”菜单打开它,则默认选择的唯一筛选器是订阅。 这与从 订阅> 中选择订阅 >活动日志打开它相同。

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

列出资源组的活动日志事件

resourceGroupName 添加到 $filter,以将 Azure Monitor 活动日志结果的范围限定为特定的资源组。

从中打开 活动日志 的菜单确定其初始筛选器。 如果从某个资源的菜单打开它,则筛选器将设置为该资源。 选择 “添加筛选器 ”以向筛选器添加更多属性。 下面是可在门户中筛选的其他属性:

  • Resource - 属于Azure解决方案的项,例如数据库或虚拟机。
  • 资源类型 – 资源 所属的类别,例如虚拟机、Web 应用或数据库。
  • Operation - 影响Azure 资源管理器资源的操作或命令,例如创建、删除和写入。
  • 事件启动者 – 按启动事件的标识筛选事件。
  • 事件类别 – 筛选特定操作的事件类型。

返回特定活动日志属性

使用参数仅返回指定属性,从而减少响应有效负载大小。 有关详细信息,请参阅 活动日志架构属性说明

Azure门户不提供直接限制从活动日志事件返回的属性的方法。 若要减少查看的数据量,请使用“活动日志”边栏选项卡中的“编辑列”选项选择门户视图中显示哪些列。

列出租户级活动日志事件

租户级活动日志事件通常具有有限的条目,但可能包括管理组或订阅创建等重要事件。 这些事件独立于订阅级活动日志事件,但可能包含重复的资源管理事件。

在这一范围内查询使用的 REST API 与订阅级活动日志事件 API 不同。 Azure CLI和Azure PowerShell不提供专用命令。

在 Azure 门户中转到 Monitor>Activity log。 更改 “活动 ”下拉菜单,然后选择“ 目录活动”。

此截图显示 Azure 门户中活动日志页中选中的“目录活动”选项。

列出管理组级活动日志事件

管理组级别活动日志事件会捕获范围限定为特定管理组的事件,例如策略分配和管理组成员资格更改。

注释

  • 以下示例使用 2017-03-01-preview 管理组级活动日志查询所需的 API 版本。

若要查看Azure门户中的管理组级活动日志事件,请转到 Management 组>选择管理组>活动日志

&显示 Azure 门户中管理组的活动日志边栏选项卡的屏幕截图。

下表介绍了上述示例中使用的参数。

Variable 示例值 Purpose
主持人 management.azure.com 隐式 ARM 终结点
subscriptionId aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e 用户输入
resourceGroupName myResourceGroup 用户输入
managementGroupId myManagementGroup 用户输入
apiVersion • 2015-04-01
• 2017-03-01-preview(适用于管理组级别)
引用

查看更改历史记录

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

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

如果有任何更改与事件关联,门户会显示一个可选择的更改列表。 选择更改将打开 “更改历史记录 ”页。 此页显示对资源所做的更改。

以下示例显示 VM 已更改大小。 该页在更改之前和更改后显示 VM 大小。 若要了解有关更改历史记录的详细信息,请参阅 “获取资源更改”。

屏幕截图展示了“更改历史记录”页面的差异。

活动日志见解

活动日志见解是一个 Azure Monitor 工作簿,它提供一组仪表板以监视订阅中资源和资源组的更改。 仪表板还显示有关哪些用户或服务在订阅中执行了活动以及活动状态的数据。

若要启用活动日志见解,请将活动日志导出到Log Analytics工作区,如 Export 活动日志中所述。 此过程将事件发送到 AzureActivity 表,该表供活动日志见解使用。

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

可以在订阅或资源级别打开活动日志洞察。 要获取订阅,请在“监视”菜单中的“工作簿”部分选择“活动日志见解”。

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

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

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

导出活动日志

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

显示活动日志、资源日志和平台指标收集过程的图示。

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

截屏显示 Azure Monitor 菜单,其中活动日志已选中,并且“导出活动日志”在 Monitor 活动日志菜单栏中突出显示。

以下部分提供有关资源日志的每个可配置目标的详细信息。

注释

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

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

活动日志没有数据引入费用。 活动日志的保留费用仅适用于超过默认保留期 90 天的时间段。 可将 保留期增加到 最多 12 年。

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

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

AzureActivity
| summarize count() by CategoryValue

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

AzureActivity
| where CategoryValue == "Administrative"

重要

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

导出管理组活动日志

为管理组创建诊断设置时,Azure Monitor将导出该管理组及其层次结构中的所有子管理组的活动日志事件。 如果层次结构中的多个管理组具有诊断设置,则会收到重复事件。 只需在最高级别管理组上设置诊断设置即可捕获层次结构的所有事件。

管理组还将收集许多相同的事件,就像其下的任何订阅一样。 如果订阅和管理组都具有诊断设置,则会收到重复事件。 Azure 资源管理器在编写事件时包含层次结构属性,但这不是必需的字段。 Azure 资源管理器外部的资源提供程序不会填充它,因此它们的事件不会在层次结构中向上传播。 因此,获取重复事件比缺少事件更好。

如果你的 MG1 包含 MG2,MG2 包含 Subscription1,MG1 上的诊断设置会捕获 MG1、MG2 的所有活动日志事件,以及 Subscription1 上诊断设置收集的许多事件。 在这种情况下,MG2 不需要诊断设置,因为它只会收集重复事件。

如果你有重复的事件,请使用使用所有字段哈希标识唯一记录的查询来合并它们。 以下示例 Kusto 查询显示了 Log Analytics 工作区中收集的日志的示例:

AzureActivity
| extend Hash = hash(dynamic_to_json(pack_all()))
| summarize arg_max(TimeGenerated, *) by Hash

将活动日志导出到文件

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

显示 Azure 门户活动日志中“下载为 CSV”按钮的屏幕截图。

重要

导出大量日志条目可能需要很长时间。 若要提高性能,请减少导出的时间范围。 在 Azure 门户中,设置 Timespan 设置。

识别资源创建

使用活动日志了解系统何时创建资源以及创建资源的人员。 活动日志是存储资源创建者的唯一位置。 由于活动日志默认仅保留 90 天的数据,因此必须将日志导出到允许延长保留期的位置,例如 Log Analytics 工作区。 然后,通过查询 AzureActivity 表查找资源的创建者。 数据会按照您在 此表的保留期中指定的时间保留。