Log Analytics 工作区以两种状态保留数据:
- 交互式保留:在这种状态下,数据可用于监视、故障排除和准实时分析。
- 长期保留:在这种低成本状态下,数据不可用于表计划功能,但可以通过搜索作业进行访问。
本文介绍 Log Analytics 工作区如何保留数据,以及如何管理工作区中表的数据保留。
交互式、长期和总保留期
默认情况下,Log Analytics 工作区中的所有表会将数据保留 30 天,但默认保留时间为 90 天的日志表除外。 在此期间(交互式保留期),可以通过查询从表中检索数据,并且可以根据表计划将该数据用于可视化、警报及其他功能和服务。
可以将使用分析计划的表的交互式保留期延长至最多两年。 基本和辅助计划的交互式保留期固定为 30 天。
注意
可以使用 API 或 CLI 将分析表的交互式保留期缩短至四天。 但是,由于引入价格中包含的是 31 天交互式保留期,因此将保留期降低到 31 天以下并不能降低成本。
若要在超过交互式保留期仍然保留同一个表中的数据,请将表的总保留期延长至最多 12 年。 在交互式保留期结束时,数据将保留在表中,直到配置的总保留期结束。 在此期间(长期保留期),可以运行搜索作业以从表中检索所需的特定数据,并使其可用于在搜索结果表中进行交互式查询。
保留期修改的工作原理
缩短表的总保留期时,Azure Monitor 日志会等待 30 天,然后删除数据,因此,如果配置中出现错误,你可以还原更改并避免数据丢失。
增加总保留期时,新的保留期将应用于已引入表中且尚未删除的所有数据。
当更改包含现有数据的表的长期保留期设置时,更改会立即生效。
示例:
- 现有分析表的交互式保留期为 180 天,但没有长期保留期。
- 可以在不更改 180 天总保留期的情况下将交互式保留期更改为 90 天。
- Azure Monitor 会自动将剩余的 90 天总保留期视为低成本的长期保留,这样,超过 90-180 天的数据就不会丢失。
所需的权限
操作 |
所需的权限 |
为 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 工作区中所有表的默认交互式保留期为 30 天。 可以通过修改工作区级别的数据保留期设置,将分析表的默认交互式保留期更改为最多两年。 基本和辅助表的交互式保留期固定为 30 天。
更改默认工作区级别的数据保留期设置会自动影响工作区中仍应用了默认设置的所有分析表。 如果你已更改特定表的交互式保留期,则更改工作区默认数据保留期设置时,该表不会受到影响。
重要
保留期为 30 天的工作区可能会将数据保留 31 天。 如果你需要将数据保留 30 天以遵守隐私政策,请使用 API 将默认的工作区保留期配置为 30 天,并将 immediatePurgeDataOn30Days
工作区属性更新为 true
。 目前仅支持使用工作区 - 更新 API 执行此操作。
若要设置 Log Analytics 工作区中分析表的默认交互式保留期:
从 Azure 门户的“Log Analytics 工作区”菜单中选择你的工作区。
在左窗格中,选择“使用情况和预估成本”。
选择页面顶部的“数据保留”。
移动滑块以增加或减少天数,然后选择“确定”。
若要设置 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": "chinanorth2"
}
**Response**
Status code: 200
```http
{
"properties": {
...
"retentionInDays": 30,
"features": {
"legacy": 0,
"searchVersion": 1,
"immediatePurgeDataOn30Days": true,
...
},
...
若要设置 Log Analytics 工作区中分析表的默认交互式保留期,请运行 az monitor log-analytics work update 命令并传递 --retention-time
参数。
此示例将表的交互式保留期设置为 30 天:
az monitor log-analytics workspace update --resource-group myresourcegroup --retention-time 30 --workspace-name myworkspace
使用 Set-AzOperationalInsightsWorkspace cmdlet 设置 Log Analytics 工作区中分析表的默认交互式保留期。 此示例将默认交互式保留期设置为 30 天:
Set-AzOperationalInsightsWorkspace -ResourceGroupName "myResourceGroup" -Name "MyWorkspace" -RetentionInDays 30
默认情况下,所有采用分析数据计划的表都会继承 Log Analytics 工作区的默认交互式保留期设置,并且没有长期保留期。 可以将分析表的交互式保留期延长至最多 730 天,但需要支付额外费用。
若要为采用任何数据计划的表增加长期保留期,请将总保留期设置为最多 12 年(4,383 天)。 辅助表计划目前为公共预览版,在此期间,该计划的总保留期固定为 365 天。
注意
目前,可以通过 Azure 门户和 API 将总保留期设置为最长 12 年。 CLI 和 PowerShell 的总保留期限制为七年;随后将支持 12 年。
若要在 Azure 门户中修改表的保留期设置,请执行以下操作:
从“Log Analytics 工作区”菜单中,选择“表”。
“表”屏幕列出了工作区中的所有表。
选择要配置的表的上下文菜单,然后选择“管理表”。
在表配置屏幕的“数据保留期设置”部分,配置交互式保留期和总保留期设置。
若要修改表的保留期设置,请调用表 - 更新 API:
PATCH https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}?api-version=2022-10-01
可以使用 PUT 或 PATCH,这二者具有以下差异:
- 如果你未设置非 null 值,PUT API 会将
retentionInDays
和 totalRetentionInDays
设置为默认值。
- PATCH API 不会更改
retentionInDays
或 totalRetentionInDays
值(如果你未指定值)。
请求正文
请求正文包含下表中的值。
名称 |
Type |
说明 |
properties.retentionInDays |
integer |
表的数据保留期(以天表示)。 此值可介于 4 和 730 之间。 将此属性设置为 null 会应用工作区保留期。 对于“基本日志”表,该值始终为 30。 |
properties.totalRetentionInDays |
integer |
表的总数据保留期(包括长期保留期)。 此值可以在 4 到 730 之间;或者为 1095、1460、1826、2191、2556、2922、3288、3653、4018 或 4383。 如果你不想长期保留,请将此属性设置为 null。 |
示例
此示例将表的交互式保留期设置为工作区默认的 30 天,并将总保留期设置为两年,这意味着长期保留期为 23 个月。
Request
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
删除 Log Analytics 工作区中的表时数据会发生什么情况?
Log Analytics 工作区可以包含多个表类型。 删除表时发生的情况因每个表而异:
表类型 |
数据保留 |
建议 |
Azure 表 |
Azure 表保存着 Azure 服务或解决方案所需的 Azure 资源或数据的日志,并且无法删除。 停止从资源、服务或解决方案流式传输数据时,数据将保留在工作区中,直到为表定义的保留期结束。 |
为了最大程度地降低费用,请在停止将日志流式传输到表之前将表级保留期设置为四天。 |
自定义日志表 (table_CL ) |
软删除表,直到表级保留期或默认的工作区保留期结束。 在软删除期间,你将继续支付数据保留费,并可以通过设置具有相同名称和架构的表来重新创建表并访问数据。 删除自定义表 14 天后,Azure Monitor 会移除表级保留期配置并应用默认的工作区保留期。 |
为了最大程度地降低费用,请在删除表之前将表级保留期设置为四天。 |
搜索结果表 (table_SRCH ) |
立即永久删除表和数据。 |
|
还原表 (table_RST ) |
删除为还原预配的热缓存,但不会删除源表数据。 |
|
默认保留期为 90 天的日志表
默认情况下,Usage
和 AzureActivity
表中的数据会免费保留至少 90 天。 如果将工作区保留期延长至 90 天以上,则也会延长这些表的保留期。 这些表也不产生数据引入费用。
与 Application Insights 资源相关的表也会将数据保留 90 天,不收取任何费用。 可以单独调整其中每个表的保留期:
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
定价模型
增加交互式保留期和长期保留期的费用是根据保留的数据量(以 GB 为单位)以及保留数据的天数计算的。 设置为 _IsBillable == false
的日志数据不受引入或保留费用的影响。
有关详细信息,请参阅 Azure Monitor 定价。
后续步骤
了解有关以下方面的详细信息: