旧式收集方法

Azure 活动日志解决方案用于将活动日志转发到 Log Analytics。 此解决方案将于 2026 年 9 月 15 日停用,并将自动转换为诊断设置。

建议你如果使用传统收集方法来收集活动日志,将活动日志导出到 Log Analytics 工作区,然后使用数据源 - 删除 API禁用旧收集方法,如下所示:

  1. 使用数据源 - 按工作区 API 列出连接到工作区的所有数据源,并通过设置 kind eq 'AzureActivityLog' 来筛选出活动日志。

    显示“数据源 - 按工作区 API 列出”的配置的屏幕截图。

  2. 从 API 响应中复制要禁用的连接的名称。

    显示需要从“数据源 - 按工作区 API 列出”的输出中复制的连接信息的屏幕截图。

  3. 使用删除数据源 API来停止收集特定资源的活动日志。

    “数据源 - 删除 API”的配置的屏幕截图。

管理旧版日志配置文件(即将停用)

注释

  • 日志配置文件用于将活动日志转发到存储帐户和事件中心。 此方法将于 2026 年 9 月 15 日停用。
  • 如果使用此方法,请在 2025 年 9 月 15 日之前过渡到诊断设置,届时我们将停止允许新创建日志配置文件。

日志概要是用于将活动日志发送到存储或事件中心的传统方法。 如果使用此方法,请转换到诊断设置,这可以提供更好的功能并与资源日志的保持一致。

如果日志配置文件已存在,首先必须删除现有日志配置文件,然后创建新的日志配置文件。

  1. 使用 Get-AzLogProfile 确定日志配置文件是否存在。 如果存在日志配置文件,请注意 Name 属性。

  2. 使用 Remove-AzLogProfile 通过 Name 属性的值删除日志配置文件。

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. 使用 Add-AzLogProfile 创建新的日志简介:

    Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
    
    资产 必选 DESCRIPTION
    名称 是的 日志配置文件的名称。
    存储账户ID 保存活动日志的存储帐户的资源 ID。
    serviceBusRuleId 服务总线命名空间(需在其中创建事件中心)的服务总线规则 ID。 此字符串的格式为 {service bus resource ID}/authorizationrules/{key name}
    位置 是的 您希望收集活动日志事件的区域列表,以逗号分隔。
    RetentionInDays 是的 事件应在存储帐户中保留的天数,从 1 到 365。 值为零时,将无限期存储日志。
    类别 要收集的事件类别的逗号分隔列表。 可能值包括:Write、Delete 和 Action。

示例脚本 此示例 PowerShell 脚本创建一个日志配置文件,用于将活动日志写入存储帐户和事件中心。

# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"
$storageAccountName = "<Storage Account name>"
# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"
# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId $storageAccountId -ServiceBusRuleId $serviceBusRuleId

数据结构更改

导出活动日志体验,与用于发送活动日志的旧版方法发送的数据是相同的,但 AzureActivity 表的结构存在一些更改。

更新后的架构中弃用了下表中的列。 这些列仍存在于 AzureActivity 中,但不会包含任何数据。 这些列的替换项并不是新的,而是包含了与已弃用列相同的数据。 它们采用了一种不同的格式,所以你可能需要对使用它们的日志查询进行修改。

活动日志 JSON 旧 Log Analytics 列名称
已弃用 ()
新的日志分析列名称 注释
分类 类别 CategoryValue
状态

值为successstartacceptfailure
活动状态

值与 JSON 相同
活动状态值

值更改为 succeeded、、 startedacceptedfailed
有效值按如下所示更改。
subStatus ActivitySubstatus ActivitySubstatusValue
操作名称 操作名称 OperationNameValue REST API 将本地化操作名称值。 Log Analytics UI 始终显示英语。
资源提供者名称 资源提供者 ResourceProviderValue

重要

在某些情况下,这些列中的值可能全大写。 如果查询包含这些列,请使用 =~ 运算符执行不区分大小写的比较。

以下列已添加到更新后架构的 AzureActivity 中:

  • Authorization_d
  • Claims_d
  • Properties_d