Azure Monitor 日志功能中的数据保留和存档
本文内容
Azure Monitor 日志功能以两种状态保留数据:
交互式保留:可以将交互式查询 的分析日志保留长达 2 年。
存档:可以在工作区中以较低成本保留较少使用的较旧数据。 可以使用搜索作业 和还原 来访问处于存档状态的数据。 可将存档状态的数据保留长达 12 年。
默认免费层保留期为“交互式保留期”30 天。
本文介绍如何配置数据保留和存档。
保留和存档如何工作
每个工作区都有一个应用于所有表的默认保留设置。 可以在单个表上配置不同的保留设置。
在交互式保留期内,数据可用于监视、故障排除和分析。 如果不再使用日志,但仍需要保留数据以实现合规性或偶尔进行调查,请存档日志以节省成本。
存档数据与可用于交互式查询的数据一起保留在同一个表中。 当设置的总保持期长于交互式保持期时,Log Analytics 会在保持期结束时立即自动存档相关数据。
可以通过运行搜索作业 或还原存档的日志 来访问存档的数据。
备注
存档周期只能在表级别设置,而不能在工作区级别设置。
对保留和存档设置的调整
缩短现有保留设置时,Azure Monitor 会等待 30 天,然后才会删除数据,因此你可以还原更改并防止在配置错误时丢失数据。 可以在需要时立即清除数据 。
增加保留设置时,新的保留期将应用于已引入表且尚未清除或删除的所有数据。
如果更改具有现有数据的表的存档设置,表中的相关数据也会立即受到影响。 例如,你可能有一个具有 180 天的交互式保留期但没有存档期的现有表。 你决定将保留设置更改为 90 天的交互式保留期,而不更改 180 天的总保留期。 Log Analytics 会立即存档超过 90 天的任何数据,并且不会删除任何数据。
删除 Log Analytics 工作区中的表时数据会发生什么情况
Log Analytics 工作区可以包含多个表类型 。 删除表时发生的情况因每个表而异:
表类型
数据保留
建议
Azure 表
Azure 表保存着 Azure 服务或解决方案所需的 Azure 资源或数据的日志,并且无法删除。 当你停止从资源、服务或解决方案流式传输数据时,数据将保留在工作区中,直到为表定义的保留期或默认的工作区保留期(如果未定义表级保留期)结束。
为了最大程度地降低费用,请在停止将日志流式传输到表之前将表级保留期 设置为四天。
还原表 (table_RST
)
删除为还原预配的热缓存,但不会删除源表数据。
搜索结果表 (table_SRCH
)
立即永久删除表和数据。
自定义日志表 (table_CL
)
软删除表,直到表级保留期或默认的工作区保留期结束。 在软删除期间,你将继续支付数据保留费,并可以通过设置具有相同名称和架构的表来重新创建表并访问数据。 删除自定义表 14 天后,Azure Monitor 会移除表级保留期配置并应用默认的工作区保留期。
为了最大程度地降低费用,请在删除表之前将表级保留期 设置为四天。
所需的权限
操作
所需的权限
为 Log Analytics 工作区配置数据保留和存档策略
对 Log Analytics 工作区具有 Microsoft.OperationalInsights/workspaces/write
和 microsoft.operationalinsights/workspaces/tables/write
权限,例如,Log Analytics 参与者内置角色 所提供的权限
按表获取 Log Analytics 工作区的保留和存档策略
对 Log Analytics 工作区具有 Microsoft.OperationalInsights/workspaces/tables/read
权限,例如,Log Analytics 读者内置角色 所提供的权限
从 Log Analytics 工作区中清除数据
对 Log Analytics 工作区具有 Microsoft.OperationalInsights/workspaces/purge/action
权限,例如,Log Analytics 参与者内置角色 所提供的权限
可以在 Azure 门户中将 Log Analytics 工作区的默认保留期设置为 30、31、60、90、120、180、270、365、550 和 730 天。 可以通过在表级别配置保留和存档 来为特定的表应用不同的设置。 如果位于免费层 ,则需要升级到付费层才能更改数据保留期。
重要
保留期为 30 天的工作区可能会将数据保留 31 天。 如果你需要将数据保留 30 天以遵守隐私政策,请使用 API 将默认的工作区保留期配置为 30 天,并将 immediatePurgeDataOn30Days
工作区属性更新为 true
。 目前仅支持使用工作区 - 更新 API 执行此操作。
若要设置默认工作区保留期,请执行以下操作:
从 Azure 门户的“Log Analytics 工作区”菜单中选择你的工作区。
在左窗格中,选择“使用情况和预估成本”。
选择页面顶部的“数据保留”。
移动滑块以增加或减少天数,然后选择“确定”。
若要设置表的保留和存档持续时间,请调用工作区 - 创建或更新 API :
PATCH https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}?api-version=2023-09-01
请求正文
请求正文包含下表中的值。
名称
Type
说明
properties.retentionInDays
integer
工作区数据保留期(以天为单位)。 允许的值基于每个定价计划。 请参阅定价层文档了解详细信息。
location
string
资源的地理位置。
immediatePurgeDataOn30Days
boolean
指示数据是否在 30 天后立即移除且不可恢复的标志。 仅当工作区保留期设置为 30 天时适用。
示例
本示例将工作区的保留期设置为工作区默认值 30 天,并确保数据在 30 天后立即被移除并且不可恢复。
Request
PATCH https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}?api-version=2023-09-01
{
"properties": {
"retentionInDays": 30,
"features": {"immediatePurgeDataOn30Days": true}
},
"location": "australiasoutheast"
}
**Response**
Status code: 200
```http
{
"properties": {
...
"retentionInDays": 30,
"features": {
"legacy": 0,
"searchVersion": 1,
"immediatePurgeDataOn30Days": true,
...
},
...
若要为表设置保留期和存档持续时间,请运行 az monitor log-analytics workspace update 命令,并传递 --retention-time
参数。
此示例将表的交互式保留期设置为 30 天,总保留期设置为两年,这意味着存档持续时间为 23 个月:
az monitor log-analytics workspace update --resource-group myresourcegroup --retention-time 30 --workspace-name myworkspace
使用 Set-AzOperationalInsightsWorkspace cmdlet 设置工作区的保留期。 此示例将工作区的保留期设置为 30 天:
Set-AzOperationalInsightsWorkspace -ResourceGroupName "myResourceGroup" -Name "MyWorkspace" -RetentionInDays 30
默认情况下,工作区中的所有表都会继承工作区的交互式保留设置,并且没有存档。 可以修改单个表的保留和存档设置,旧的试用版定价层中的工作区除外。
Analytics 日志数据计划包括当前代定价层(即用即付和承诺层级以及旧版独立层级和每节点层级)中工作区的 31 天交互式保留期。 可将交互式保留期延长至最多 730 天,但需要额外付费 。 如果需要,可以使用 API 或 CLI 将交互式保留期缩短至四天。 但是,由于引入价格中包含的是 31 天交互式保留期,因此将保留期降低到 31 天以下并不能降低成本。 可以将存档期限设置为最长 4,383 天(12 年)的总保留时间。
注意
目前,可以通过 Azure 门户和 API 将总保留期设置为最长 12 年。 CLI 和 PowerShell 的总保留期限制为七年;随后将支持 12 年。
若要在 Azure 门户中为表设置保留期和存档持续时间,请执行以下操作:
从“Log Analytics 工作区”菜单中,选择“表”。
“表”屏幕列出了工作区中的所有表。
选择要配置的表的上下文菜单,然后选择“管理表”。
在表配置屏幕的“数据保留设置”部分配置保留期和存档持续时间。
若要设置表的保留和存档持续时间,请调用“表 - Update”API:
PATCH https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}?api-version=2022-10-01
备注
不要在 API 调用中显式指定存档持续时间。 而是设置总保留期,也就是交互式保留期之和加上存档持续时间。
可以使用 PUT 或 PATCH,这二者具有以下差异:
如果你未设置非 null 值,PUT API 会将 retentionInDays
和 totalRetentionInDays
设置为默认值。
PATCH API 不会更改 retentionInDays
或 totalRetentionInDays
值(如果你未指定值)。
请求正文
请求正文包含下表中的值。
名称
Type
说明
properties.retentionInDays
integer
表的数据保留期(以天表示)。 此值可介于 4 和 730 之间。 将此属性设置为 null 会应用工作区保留期。 对于“基本日志”表,该值始终为 8。
properties.totalRetentionInDays
integer
表的总数据保留期,包括存档期。 此值可以在 4 到 730 之间;或者为 1095、1460、1826、2191、2556、2922、3288、3653、4018 或 4383。 如果不想存档数据,请将此属性设置为 null。
示例
此示例将表的交互式保留期设置为工作区默认的 30 天,并将总保留期设置为两年,这意味着存档持续时间为 23 个月。
请求
PATCH https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/testRG/providers/Microsoft.OperationalInsights/workspaces/testWS/tables/CustomLog_CL?api-version=2022-10-01
请求正文
{
"properties": {
"retentionInDays": null,
"totalRetentionInDays": 730
}
}
响应
状态代码:200
{
"properties": {
"retentionInDays": 30,
"totalRetentionInDays": 730,
"archiveRetentionInDays": 700,
...
},
...
}
若要为表设置保留期和存档持续时间,请运行 az monitor log-analytics workspace table update 命令,并传递 --retention-time
和 --total-retention-time
参数。
此示例将表的交互式保留期设置为 30 天,总保留期设置为两年,这意味着存档持续时间为 23 个月:
az monitor log-analytics workspace table update --subscription ContosoSID --resource-group ContosoRG --workspace-name ContosoWorkspace --name AzureMetrics --retention-time 30 --total-retention-time 730
若要将工作区的默认交互式保留期值重新应用到表,并将其总保留期重置为 0,请运行 az monitor log-analytics workspace table update 命令,运行时其 --retention-time
和 --total-retention-time
参数设置为 -1
。
例如:
az monitor log-analytics workspace table update --subscription ContosoSID --resource-group ContosoRG --workspace-name ContosoWorkspace --name Syslog --retention-time -1 --total-retention-time -1
使用 Update-AzOperationalInsightsTable cmdlet 来设置表的保留期和存档持续时间。 此示例将表的交互式保留期设置为 30 天,总保留期设置为两年,这意味着存档持续时间为 23 个月:
Update-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -TableName AzureMetrics -RetentionInDays 30 -TotalRetentionInDays 730
若要将工作区的默认交互式保留期值重新应用到表,并将其总保留期重置为 0,请运行 Update-AzOperationalInsightsTable cmdlet,-RetentionInDays
和 -TotalRetentionInDays
参数设置为 -1
。
例如:
Update-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -TableName Syslog -RetentionInDays -1 -TotalRetentionInDays -1
按表获取保留和存档设置
若要查看 Azure 门户中表的保留和存档时间,请从“Log Analytics 工作区”菜单中选择“表”。
“表”屏幕会显示工作区中所有表的交互式保留期和存档期。
若要获取某个特定表的保留设置(在此示例中为 SecurityEvent
),请调用“表 - Get”API:
GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/Microsoft.OperationalInsights/workspaces/MyWorkspaceName/Tables/SecurityEvent?api-version=2022-10-01
若要获取工作区中的所有表级保留设置,请不要设置表名。
例如:
GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/Microsoft.OperationalInsights/workspaces/MyWorkspaceName/Tables?api-version=2022-10-01
若要获取某个特定表的保留设置,请运行 az monitor log-analytics workspace table show 命令。
例如:
az monitor log-analytics workspace table show --subscription ContosoSID --resource-group ContosoRG --workspace-name ContosoWorkspace --name SecurityEvent
若要获取特定表的保留策略,请运行 Get-AzOperationalInsightsTable cmdlet。
例如:
Get-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -tableName SecurityEvent
具有唯一保留期的表
默认情况下,两种数据类型(Usage
和 AzureActivity
)将数据至少保留 90 天,不收取任何费用。 如果将工作区保留期延长到 90 天以上,则也会延长这些数据类型的保留期。 这些表也不产生数据引入费用。
与 Application Insights 资源相关的表也会将数据保留 90 天,不收取任何费用。 可以单独调整其中每个表的保留期:
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
定价模型
维护存档日志的费用根据存档的数据量(以 GB 为单位)以及存档数据的天数进行计算。 具有 _IsBillable == false
的日志数据不受保留或存档费用约束。
有关详细信息,请参阅 Azure Monitor 定价 。
后续步骤
了解有关以下方面的详细信息: