诊断设置的存储保留功能已弃用。 此功能的所有保留功能已于 2025 年 9 月 30 日在所有环境中禁用。
本文逐步讲解如何从使用诊断设置存储保留迁移到使用 Azure 存储生命周期管理 进行保留。
对于发送到 Log Analytics 工作区的日志,会在工作区的“表”页上为每个表设置保留期。 有关详细信息,请参阅在 Log Analytics 工作区中管理数据保留。
Prerequisites
若要完成此迁移,需要:
- 将日志发送到Azure 存储帐户的现有诊断设置。
-
存储帐户参与者角色或授予目标存储帐户权限的
Microsoft.Storage/storageAccounts/managementPolicies/*等效角色。
迁移到 Azure 存储生命周期管理策略
诊断设置存储保留功能已于 2025 年 9 月 30 日停止应用保留,因此在诊断设置上保留的任何保留值不再有任何影响。 通过完成以下步骤,使用Azure 存储生命周期管理策略在存储帐户上重新创建该保留行为。
更改保留设置时,请记住以下行为:
Note
- 更改保留设置时,新设置仅适用于更改后引入的新日志。 现有日志受以前的保留设置约束。
- 删除诊断设置不会删除存储帐户中的日志。 保留设置继续应用于在删除诊断设置之前创建的日志。
检查是否存在使用存储账户的诊断设置
以下Azure CLI示例使用az monitor diagnostic-settings list命令。 它使用 --resource 参数列出资源上的诊断设置。
# Set variables
resourceId="<ResourceId>"
# List the diagnostic settings on the resource
az monitor diagnostic-settings list --resource "$resourceId"
输出显示诊断设置是否将数据发送到存储帐户。 例如:
[
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-001/providers/microsoft.insights/datacollectionrules/dcr-east2/providers/microsoft.insights/diagnosticSettings/dsetting-1",
"logs": [
{
"categoryGroup": "allLogs",
"enabled": true,
"retentionPolicy": {
"days": 0,
"enabled": false
}
}
],
"metrics": [
{
"category": "AllMetrics",
"enabled": false,
"retentionPolicy": {
"days": 0,
"enabled": false
}
}
],
"name": "dsetting-1",
"resourceGroup": "rg-001",
"storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-DCR/providers/Microsoft.Storage/storageAccounts/logs001",
"type": "Microsoft.Insights/diagnosticSettings"
}
]
创建生命周期管理策略
选择Azure CLI、Bicep或 ARM 模板来创建策略。 由于诊断设置存储保留已于 2025 年 9 月 30 日禁用,因此诊断设置上保留的任何保留值不再适用,因此无需将其重置为 0。
以下Azure CLI示例使用az storage account management-policy create命令。 它通过使用 --policy 参数引用本地策略定义文件来创建生命周期管理策略。
# Set variables
storageAccountName="<StorageAccountName>"
resourceGroupName="<ResourceGroupName>"
policyFilePath="<PolicyDefinitionFilePath>"
# Create the lifecycle management policy
az storage account management-policy create \
--account-name "$storageAccountName" \
--resource-group "$resourceGroupName" \
--policy "@$policyFilePath"
以下示例策略定义为该订阅中的容器 insights-activity-logs 内的所有 blob 设置保留期限。 有关详细信息,请参阅生命周期管理策略定义。
{
"rules": [
{
"enabled": true,
"name": "Subscription level lifecycle rule",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 120
}
}
},
"filters": {
"blobTypes": [
"appendBlob"
],
"prefixMatch": [
"insights-activity-logs/ResourceId=/SUBSCRIPTIONS/<SubscriptionId>"
]
}
}
}
]
}
验证生命周期管理策略
以下Azure CLI示例使用az storage account management-policy show命令。 它使用 --account-name 参数确认存储帐户上存在策略。
# Set variables
storageAccountName="<StorageAccountName>"
resourceGroupName="<ResourceGroupName>"
# Show the lifecycle management policy
az storage account management-policy show \
--account-name "$storageAccountName" \
--resource-group "$resourceGroupName"
输出显示策略规则,包括用于以天为单位设置保留期限的 daysAfterModificationGreaterThan 值。