使用“删除数据 API”从 Log Analytics 工作区中删除数据

“删除数据 API”允许你发出异步请求来删除数据,例如敏感、个人、损坏或错误的日志条目。

本文介绍如何通过调用“删除数据 API”从 Log Analytics 工作区中的特定表删除日志条目。

删除数据 API 的工作原理

删除数据 API 非常适合对单个记录进行计划外删除。 例如,当你发现损坏的遥测数据引入到工作区时,你希望防止它扭曲查询结果。 删除数据 API 会将符合指定筛选条件的记录标记为已删除,而无需从存储中实际删除这些记录。

若要指定要删除的表的行,请在 API 调用的正文中发送一个或多个筛选器。

“删除”过程是最终的且不可逆的。 因此,在调用 API 之前,请在工作区中使用 Kusto 查询语言(KQL)where 运算符运行查询,以检查筛选器是否生成了预期结果。

例如,若要基于AzureMetrics值从TimeGenerated表中删除数据:

  • 可以在 API 调用的正文中发送此筛选器:

    {
      "filters": [
        {
          "column": "TimeGenerated",      
          "operator": "==",                
          "value": "2024-09-23T00:00:00"  
        }
      ]
    }
    
  • 通过在 Log Analytics 工作区中运行此查询,检查筛选器是否返回要删除的条目:

    AzureMetrics
    | where TimeGenerated == "2024-09-23T00:00:00" 
    

删除数据请求是异步的,通常在几分钟内完成。 在极端情况下,请求最多可以排队五天。

所需的权限

行动 所需的权限
从 Log Analytics 工作区中的表中删除数据 对 Log Analytics 工作区的 Microsoft.OperationalInsights/workspaces/tables/deleteData/action 权限,例如,Log Analytics 参与者内置角色所提供的权限

实施注意事项

  • 在单个 Log Analytics 工作区中,每小时最多可以提交 10 个删除数据请求。
  • 分析表方案支持删除数据。 若要从包含基本计划的表中删除数据,请将计划更改为 Analytics,然后删除数据。 辅助计划不支持删除数据。
  • 删除数据不会影响保留计费。 保留费用受工作区中配置的保持期管理。

调用“删除数据 API”以从特定表中删除数据

若要从表中删除行,请使用以下命令:

POST https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace_name}/tables/{table_name}/deleteData?api-version=2023-09-01
Authorization: Bearer eyJ0e...

在 API 调用的正文中指定一个或多个筛选器。 此示例对 TimeGenerated 列和 Resource 列进行筛选:

{
  "filters": [
    {
      "column": "TimeGenerated",      
      "operator": "==",                
      "value": "2024-09-23T00:00:00"  
    },
    {
      "column": "Resource",      
      "operator": "==",                
      "value": "VM-1"  
    }
  ]
}

筛选器参数

名称 DESCRIPTION
column 要对其应用筛选器的目标表中的列的名称。
operator 支持的运算符为===~inin~>>=<<=between
value 要筛选依据的值,采用受支持的格式。 该值可以是特定的日期、字符串或其他数据类型,具体取决于列。

反应

响应 DESCRIPTION
202 (已接受) 异步请求已成功接收。 若要检查操作是成功还是失败,请使用响应标头中提供的 Azure-AsyncOperation URL。
其他状态代码 描述作失败的原因的错误响应。

检查删除数据操作和状态

可以通过 Azure 活动日志跟踪工作区中的数据删除活动。 在 Azure 门户的 Log Analytics 工作区 菜单中,选择 “活动日志 ”,并从 Log Analytics 工作区事件中找到“删除数据 ”。 选择事件,然后以 JSON 格式打开事件,了解删除的记录数、调用方和消息数等详细信息。

若要检查作的状态并查看已删除的记录数,请使用响应标头中提供的 URL 发送 GET 请求 Azure-AsyncOperation

GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.OperationalInsights/locations/{region}/operationstatuses/{responseOperation}?api-version=2023-09-01
Authorization: Bearer eyJ0e...

反应

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.OperationalInsights/locations/chinanorth2/operationstatuses/00000000-0000-0000-0000-000000001234",
  "name": "00000000-0000-0000-0000-000000001234",
  "status": "Succeeded",
  "startTime": "2024-11-04T09:31:41.689659Z",
  "endTime": "2024-11-04T09:36:49.0252644Z",
  "properties": {
    "RecordCount": 234812,
    "Status": "Completed"
  }
}

有关详细信息,请参阅 跟踪异步 Azure 操作

后续步骤

学习如何做到: