本文内容
保留策略定义何时要在 Log Analytics 工作区 中删除或存档数据。 通过存档,可以在工作区中以较低成本保留较少使用的较旧数据。
本文介绍如何配置数据保留和存档。
保留和存档如何工作
每个工作区都有一个应用于所有表的默认保留策略。 可以在单个表上设置不同的保留策略。
在交互式保留期内,数据可用于监视、故障排除和分析。 如果不再使用日志,但仍需要保留数据以实现合规性或偶尔进行调查,请存档日志以节省成本。
存档数据与可用于交互式查询的数据一起保留在同一个表中。 当设置的总保持期长于交互式保持期时,Log Analytics 会在保持期结束时立即自动存档相关数据。
如果更改具有现有数据的表的存档设置,表中的相关数据也会立即受到影响。 例如,你可能有一个具有 30 天的交互式保留期但没有存档期的现有表。 你决定将保留策略更改为 8 天的交互式保留期和一年的总保留期。 Log Analytics 会立即存档超过 8 天的任何数据。
可以通过运行搜索作业 或还原存档的日志 来访问存档的数据。
备注
存档周期只能在表级别设置,而不能在工作区级别设置。
缩短现有保留策略时,Azure Monitor 会等待 30 天,然后才会删除数据,因此你可以还原更改并防止在配置错误时丢失数据。 可以在需要时立即清除数据 。
可以在 Azure 门户中将工作区默认保留策略设置为 30、31、60、90、120、180、270、365、550 和 730 天。 可以通过在表级别配置保留期和存档策略 ,为特定的表设置不同的策略。 如果位于免费层,则需要升级到付费层才能更改数据保留期。
若要配置默认工作区保留策略,请执行以下操作:
从 Azure 门户的“Log Analytics 工作区”菜单中选择你的工作区。
在左窗格中,选择“使用情况和预估成本”。
选择页面顶部的“数据保留”。
移动滑块以增加或减少天数,然后选择“确定”。
按表设置保留和存档策略
在默认情况下,工作区中的所有表都会继承工作区的交互式保留期设置,并且没有存档策略。 可以修改单个表的保留策略和存档策略,旧的试用版定价层中的工作区除外。
可以在 4 到 730 天的交互式保留期内保留数据。 可以设置总保留时间长达 2,556 天(七年)的存档期。
若要在 Azure 门户中为表设置保留期和存档持续时间,请执行以下操作:
从“Log Analytics 工作区”菜单中,选择“表”。
“表”屏幕列出了工作区中的所有表。
选择要配置的表的上下文菜单,然后选择“管理表”。
在表配置屏幕的“数据保留设置”部分配置保留期和存档持续时间。
若要设置表的保留和存档持续时间,请调用“表 - Update”API:
PATCH https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}?api-version=2021-12-01-preview
备注
不要在 API 调用中显式指定存档持续时间。 而是设置总保留期,也就是交互式保留期之和加上存档持续时间。
可以使用 PUT 或 PATCH,这二者具有以下差异:
如果你未设置非 null 值,PUT API 会将 retentionInDays
和 totalRetentionInDays
设置为默认值。
PATCH API 不会更改 retentionInDays
或 totalRetentionInDays
值(如果你未指定值)。
请求正文
请求正文包含下表中的值。
名称
类型
说明
properties.retentionInDays
integer
表的数据保留期(以天表示)。 此值可介于 4 和 730 之间。 将此属性设置为 null 会将表的数据保留期默认为工作区保留期。 对于“基本日志”表,该值始终为 8。
properties.totalRetentionInDays
integer
表的总数据保留期,包括存档期。 此值可以介于 4 和 730 之间;或者为 1095、1460、1826、2191 或 2556。 如果不想存档数据,请将此属性设置为 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=2021-12-01-preview
请求正文
{
"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=2021-12-01-preview
若要获取工作区中的所有表级保留策略,请不要设置表名。
例如:
GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/Microsoft.OperationalInsights/workspaces/MyWorkspaceName/Tables?api-version=2021-12-01-preview
若要获取某个特定表的保留策略,请运行 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 清除 API 不影响保留期计费。 若要降低保留成本,请缩短工作区或特定表的保留期。
具有唯一保留策略的表
默认情况下,两种数据类型(Usage
和 AzureActivity
)将数据至少保留 90 天,不收取任何费用。 如果将工作区保留期延长到 90 天以上,则也会延长这些数据类型的保留期。 将此数据保留 90 天以上需付费。 这些表也不产生数据引入费用。
与 Application Insights 资源相关的表也会将数据保留 90 天,不收取任何费用。 可以单独调整其中每个表的保留策略:
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
定价模型
维护存档日志的费用根据存档的数据量(以 GB 为单位)以及存档数据的天数进行计算。
有关详细信息,请参阅 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
参数,配置数据量上限的每日重置时间。
后续步骤