Log Analytics 工作区以两种状态保留数据:
-
分析式保留:在这种状态下,数据可用于监视、故障排除和准实时分析。
-
长期保留:在这种低成本状态下,数据不可用于表计划功能,但可以通过搜索作业进行访问。
本文介绍 Log Analytics 工作区如何保留数据,以及如何管理工作区中表的数据保留。
分析式保持期、长期保持期和总保持期
默认情况下,Log Analytics 工作区中的所有表会将数据保留 30 天,但默认保留时间为 90 天的日志表除外。 具有 Analytics 计划的表确保用户在此分析式保持期内可实时查询数据。 所有表计划都可以通过查询或搜索作业检索存储的数据,并且数据可用于基于表计划的可视化效果、警报和其他功能和服务。
可以将使用分析计划的表的交互式保持期延长至最多两年。 基本计划表的查询期固定为 30 天,而辅助计划表的查询期为总保持期内。 但是,基本表和辅助表都有其他的注意事项。 有关详细信息,请参阅在基本表和辅助表中查询数据。
注意
可以使用 API 或 CLI 将 Analytics 表的分析式保持期缩短至四天。 但是,由于引入价格中包含的是 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.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}?api-version=2023-09-01
请求正文
请求正文包含下表中的值。
| 名称 |
类型 |
说明 |
properties.retentionInDays |
整数 |
工作区数据保留期(以天为单位)。 允许的值根据定价计划而定。 请参阅定价层文档了解详细信息。 |
location |
字符串 |
资源的地理位置。 |
immediatePurgeDataOn30Days |
布尔 |
指示数据是否在 30 天后立即删除且不可恢复的标志。 仅当工作区保留期设置为 30 天时适用。 |
示例
本示例将工作区的保留期设置为工作区默认值 30 天,并确保数据在 30 天后立即被删除并且不可恢复。
请求
PATCH https://management.azure.com/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,
...}
},
...
}
若要设置 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 天)。
注意
目前,可以通过 Azure 门户和 API 将总保留期设置为最长 12 年。 CLI 和 PowerShell 的支持时间限制为七年;之后将延长至 12 年。
若要在 Azure 门户中修改表的保留期设置,请执行以下操作:
从“Log Analytics 工作区”菜单中,选择“表格”。
表界面列出了工作区中的所有表格。
选择要配置的表的上下文菜单,然后选择“管理表”。
在表配置屏幕的“数据保留设置”部分,配置分析式保持期和总保持期设置。
若要修改表的保留期设置,请调用表 - 更新 API:
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}?api-version=2022-10-01
可以使用 PUT 或 PATCH,这二者具有以下差异:
- 如果你未设置非 null 值,PUT API 会将 和
retentionInDays 设置为默认值。
- PATCH API 不会更改 或
retentionInDays 值(如果你未指定值)。
请求正文
请求正文包含下表中的值。
| 名称 |
类型 |
说明 |
| properties.retentionInDays |
整数 |
表的数据保留期(以天表示)。 此值可介于 4 和 730 之间。 将此属性设置为 null 会应用工作区保留期。 对于“基本日志”和“辅助日志”表,该值始终为 30。 |
| properties.totalRetentionInDays |
整数 |
表的总数据保留期(包括长期保留期)。 此值可以在 4 到 730 之间;或者为 1095、1460、1826、2191、2556、2922、3288、3653、4018 或 4383。 如果你不想长期保留,请将此属性设置为 null。 |
示例
此示例将表的分析式保持期设置为工作区默认的 30 天,并将总保持期设置为两年,这意味着长期保持期为 23 个月。
请求
PATCH https://management.azure.com/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
使用此示例 ARM 模板和参数文件更新特定表的保留期。
模板文件
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "sampleWorkspace",
"metadata": {
"description": "The number of days to retain the data."
}
},
"tableName": {
"type": "string",
"defaultValue": "sampleTable",
"metadata": {
"description": "The name of the Log Analytics table to modify."
}
},
"retentionInDays": {
"type": "int",
"defaultValue": 30,
"metadata": {
"description": "The number of days to retain the data."
}
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-02-01",
"name": "[parameters('workspaceName')]",
"location": "[resourceGroup().location]",
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces/tables",
"apiVersion": "2025-02-01",
"name": "[concat(parameters('workspaceName'), '/', parameters('tableName'))]",
"properties": {
"retentionInDays": "[parameters('retentionInDays')]"
},
"dependsOn": [ "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]" ]
}
]
}
]
}
参数文件
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"value": "MyWorkspace"
},
"tableName": {
"value": "AppRequests"
},
"retentionInDays": {
"value": 120
}
}
}
获取按表划分的保留期设置
若要在 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 资源或解决方案的日志。 停止从资源或解决方案发送数据时,数据将保留在工作区中,直到为表定义的保持期结束,并对此收取相应费用。 |
若要降低费用,请设置表级别的保持期为四天,这是支持的最低期限。 如果删除的表与应删除的解决方案(例如 Sentinel)相关联,则在四天的保持期后可删除该解决方案。 |
启用解决方案。 数据恢复受表的保留期限制。 |
自定义日志表 (table_CL) |
自定义日志表保存从日志引入API或者已弃用的HTTP数据收集器API生成的日志。 删除表时,表名称将保留 15 天。 删除 Analytics 或基本计划中的表不会删除数据。 15 天后,表保持期将设置为工作区保持期,并按表中的保持期收取保留费用。 如删除辅助计划中的表,数据将在 15 天后永久删除。 |
若要尽量减少费用,请将表级保持期设置为四天,并在修整数据四天后删除该表。 |
分析 或 基本 计划:创建具有相同名称和架构的表。 数据恢复受表的保留期限制。
辅助 计划:在软删除期间创建具有相同名称和架构的表。 |
搜索结果表 (table_SRCH) |
立即永久删除表和数据。 |
|
|
还原表(table_RST) |
删除为还原预配的热缓存,但不会删除源表数据。 |
|
|
默认保留期为 90 天的日志表
默认情况下,Usage 和 AzureActivity 表中的数据会免费保留至少 90 天。 如果将工作区保留期延长至 90 天以上,则也会延长这些表的保留期。 这些表也不产生数据导入费用。
与 Application Insights 资源相关的表也会将数据保留 90 天,不收取任何费用。 可以单独调整其中每个表的保留期:
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
定价模型
分析和长期保持期是根据 GB 数据量和保留数据的天数计算的。 数据存储的计费按天进行(以 UTC 时区的时间为准)。 设置为 _IsBillable == false 的日志数据不受引入或保留费用的影响。
如需了解更多信息,请参阅以下文章:
相关内容
了解有关以下方面的详细信息: