Azure Monitor 日志功能中的数据保留和存档
本文内容
Azure Monitor 日志功能以两种状态保留数据:
交互式保留:可以将交互式查询 的分析日志保留长达 2 年。
存档:可以在工作区中以较低成本保留较少使用的较旧数据。 可以使用搜索作业 和还原 来访问处于存档状态的数据。 可将存档状态的数据保留长达 12 年。
本文介绍如何配置数据保留和存档。
保留和存档如何工作
每个工作区都有一个应用于所有表的默认保留设置。 可以在单个表上配置不同的保留设置。
在交互式保留期内,数据可用于监视、故障排除和分析。 如果不再使用日志,但仍需要保留数据以实现合规性或偶尔进行调查,请存档日志以节省成本。
存档数据与可用于交互式查询的数据一起保留在同一个表中。 当设置的总保持期长于交互式保持期时,Log Analytics 会在保持期结束时立即自动存档相关数据。
可以通过运行搜索作业 或还原存档的日志 来访问存档的数据。
备注
存档周期只能在表级别设置,而不能在工作区级别设置。
对保留和存档设置的调整
缩短现有保留设置时,Azure Monitor 会等待 30 天,然后才会删除数据,因此你可以还原更改并防止在配置错误时丢失数据。 可以在需要时立即清除数据 。
增加保留设置时,新的保留期将应用于已引入表且尚未清除或删除的所有数据。
如果更改具有现有数据的表的存档设置,表中的相关数据也会立即受到影响。 例如,你可能有一个具有 180 天的交互式保留期但没有存档期的现有表。 你决定将保留设置更改为 90 天的交互式保留期,而不更改 180 天的总保留期。 Log Analytics 会立即存档超过 90 天的任何数据,并且不会删除任何数据。
所需的权限
操作
所需的权限
为 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 参与者内置角色 所提供的权限
为经典 Application Insights 资源设置数据保留
对经典 Application Insights 资源具有 microsoft.insights/components/write
权限,例如,Application Insights 组件参与者内置角色 所提供的权限
从经典 Application Insights 资源中清除数据
对经典 Application Insights 资源具有 Microsoft.Insights/components/purge/action
权限,例如,Application Insights 组件参与者内置角色 所提供的权限
可以在 Azure 门户中将 Log Analytics 工作区的默认保留期设置为 30、31、60、90、120、180、270、365、550 和 730 天。 可以通过在表级别配置保留和存档 来为特定的表应用不同的设置。 如果位于免费层 ,则需要升级到付费层才能更改数据保留期。
若要设置默认工作区保留期,请执行以下操作:
从 Azure 门户的“Log Analytics 工作区”菜单中选择你的工作区。
在左窗格中,选择“使用情况和预估成本”。
选择页面顶部的“数据保留”。
移动滑块以增加或减少天数,然后选择“确定”。
若要设置表的保留和存档持续时间,请调用“工作区 - Update” API:
PATCH https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}?api-version=2023-09-01
请求正文
请求正文包含下表中的值。
名称
Type
说明
properties.retentionInDays
integer
工作区数据保留期(以天为单位)。 允许的值基于每个定价计划。 请参阅定价层文档了解详细信息。
示例
此示例将工作区的保留期设置为工作区默认值 30 天。
Request
PATCH https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/oiautorest6685/providers/Microsoft.OperationalInsights/workspaces/oiautorest6685?api-version=2023-09-01
{
"properties": {
"retentionInDays": 30,
}
}
响应
状态代码:200
{
"properties": {
"retentionInDays": 30,
},
"location": "chinaeast2",
"tags": {
"tag1": "val1"
}
}
若要为表设置保留期和存档持续时间,请运行 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
清除保留的数据
如果将数据保留期设置为 30 天,可以使用 Azure 资源管理器中的 immediatePurgeDataOn30Days
参数立即清除较旧的数据。 在需要立即删除个人数据时,清除功能很有用。 即时清除功能未通过 Azure 门户提供。
如果未设置 immediatePurgeDataOn30Days
参数,具有 30 天保留期的工作区可能会将数据保留 31 天。
还可使用清除功能 从工作区中清除数据,该功能将删除个人数据。 无法从存档的日志中清除数据。
重要
Log Analytics 清除功能 不会影响保留成本。 若要降低保留成本,请缩短工作区或特定表的保留期。
具有唯一保留期的表
默认情况下,两种数据类型(Usage
和 AzureActivity
)将数据至少保留 90 天,不收取任何费用。 如果将工作区保留期延长到 90 天以上,则也会延长这些数据类型的保留期。 这些表也不产生数据引入费用。
与 Application Insights 资源相关的表也会将数据保留 90 天,不收取任何费用。 可以单独调整其中每个表的保留期:
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
定价模型
维护存档日志的费用根据存档的数据量(以 GB 为单位)以及存档数据的天数进行计算。 具有 _IsBillable == false
的日志数据不受保留或存档费用约束。
有关详细信息,请参阅 Azure Monitor 定价 。
为经典 Application Insights 资源设置数据保留
基于工作区的 Application Insights 资源将数据存储在 Log Analytics 工作区中,因此它包含在工作区的数据保留和存档设置中。 经典 Application Insights 资源具有单独的保留设置。
Application Insights 资源的默认保留期为 90 天。 可以为每个 Application Insights 资源选择不同的保留期。 可以从以下保留期中进行选择:30 天、60 天、90 天、120 天、180 天、270 天、365 天、550 天或 730 天。
若要更改保留期,请从 Application Insights 资源转到“使用情况和估算成本”页,然后选择“数据保留”选项。
保留期天数减少时,在删除最旧的数据之前,会有几天的宽限期。
还可以通过 PowerShell 以编程方式设置 保留期(使用 retentionInDays
参数)。 如果将数据保留期设置为 30 天,则可以使用 immediatePurgeDataOn30Days
参数触发立即进行的旧数据清除作业。 此方法可能对合规性相关方案有用。 此清除功能仅通过 Azure 资源管理器公开,切记请谨慎使用。 可以使用 Azure 资源管理器设置 dailyQuotaResetTime
参数,配置数据量上限的每日重置时间。
后续步骤