Azure存储账户执行Set-AzureRmDiagnosticSetting报AllMetrics不支持异常
解决Azure存储账户执行
Set-AzureRmDiagnosticSetting时的"AllMetrics不支持"异常 这个问题我之前也碰到过,核心原因是:Azure存储账户并不支持AllMetrics这个通用指标类别,而Set-AzureRmDiagnosticSetting命令在不指定具体指标类别时,默认会尝试启用AllMetrics,这就触发了BadRequest错误。而Key Vault、Service Bus这类资源支持AllMetrics,所以你的命令在它们身上能正常运行。
解决方案步骤:
1. 先获取存储账户支持的具体指标类别
首先需要确认你的存储账户实际支持哪些指标类别,用以下PowerShell命令查询:
# 替换成你的存储账户ResourceId $resourceId = "/subscriptions/c1ddf901-1db.../providers/Microsoft.Storage/storageAccounts/your-storage-account" Get-AzureRmMetricDefinition -ResourceId $resourceId | Select-Object Name, MetricCategory
执行后你会看到存储账户的指标类别是按服务划分的,比如Blob、File、Queue、Table这些(具体取决于你的存储账户启用的服务)。
2. 修改诊断设置命令,指定具体的指标类别
把原来的命令修改为明确指定支持的MetricCategory,示例如下:
# 替换成你的资源ID和存储账户日志ID $resourceId = "/subscriptions/c1ddf901-1db.../providers/Microsoft.Storage/storageAccounts/your-storage-account" $storageAccountIdLogs = "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/your-log-storage" Set-AzureRmDiagnosticSetting -ResourceId $resourceId ` -Enable $true ` -RetentionInDays 365 ` -RetentionEnabled $true ` -MetricCategory "Blob", "File", "Queue", "Table" ` -StorageAccountId $storageAccountIdLogs
注意:-MetricCategory后面的参数要和第一步查询到的类别完全匹配,如果你只需要启用部分服务的指标,只填对应的类别即可(比如只填"Blob")。
3. 验证设置是否成功
执行完命令后,可以用以下命令检查诊断设置是否生效:
Get-AzureRmDiagnosticSetting -ResourceId $resourceId
返回结果里会显示已启用的指标类别和日志设置,确认没有报错即可。
内容的提问来源于stack exchange,提问作者rajeshmag
相关产品推荐
相关产品推荐

