如何使用Azure CLI列出诊断设置的目标详情
如何通过Azure CLI获取存储账户Blob服务诊断设置的目标详情
我使用Azure CLI命令列出存储账户Blob服务的诊断设置,但返回结果仅包含Logs和Metrics信息,需要获取诊断设置的目标详情。
当前使用的命令
az monitor diagnostic-settings show --resource '/subscriptions/<subscription>/resourceGroups/<RG name>/providers/Microsoft.Storage/storageAccounts/<storage account name>/blobServices/default' --name '<Diagnostic Settings name>'
当前返回结果
{ "id": "/subscriptions/<>/resourcegroups/<>/providers/microsoft.storage/storageaccounts/<>/blobservices/default/providers/microsoft.insights/diagnosticSettings/<>", "logs": [ { "category": "StorageRead", "enabled": true, "retentionPolicy": { "days": 0, "enabled": false } }, { "category": "StorageWrite", "enabled": true, "retentionPolicy": { "days": 0, "enabled": false } }, { "category": "StorageDelete", "enabled": true, "retentionPolicy": { "days": 0, "enabled": false } } ], "metrics": [ { "category": "Capacity", "enabled": false, "retentionPolicy": { "days": 0, "enabled": false } }, { "category": "Transaction", "enabled": false, "retentionPolicy": { "days": 0, "enabled": false } } ], "name": "", "resourceGroup": "", "storageAccountId": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.Storage/storageAccounts/<>", "type": "Microsoft.Insights/diagnosticSettings", "workspaceId": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.OperationalInsights/workspaces/<>-ctlz-log-analytics-workspace" }
解决方案
az monitor diagnostic-settings show命令本身会返回所有诊断设置的目标详情,只是这些信息以独立字段的形式存在,而非统一的"Destination Details"结构。常见的目标字段包括:
storageAccountId:日志/指标发送的目标存储账户资源IDworkspaceId:日志/指标发送的目标Log Analytics工作区资源IDeventHubAuthorizationRuleId:目标事件中心的授权规则ID(若配置)eventHubName:目标事件中心名称(若配置)marketplacePartnerId:第三方合作伙伴目标的资源ID(若配置)
你当前的返回结果中已经包含storageAccountId和workspaceId,这就是对应的目标详情。如果需要单独提取这些字段,可以使用--query参数过滤输出:
提取存储账户目标ID
az monitor diagnostic-settings show --resource '/subscriptions/<subscription>/resourceGroups/<RG name>/providers/Microsoft.Storage/storageAccounts/<storage account name>/blobServices/default' --name '<Diagnostic Settings name>' --query 'storageAccountId' -o tsv
提取Log Analytics工作区目标ID
az monitor diagnostic-settings show --resource '/subscriptions/<subscription>/resourceGroups/<RG name>/providers/Microsoft.Storage/storageAccounts/<storage account name>/blobServices/default' --name '<Diagnostic Settings name>' --query 'workspaceId' -o tsv
提取所有目标信息并格式化输出
az monitor diagnostic-settings show --resource '/subscriptions/<subscription>/resourceGroups/<RG name>/providers/Microsoft.Storage/storageAccounts/<storage account name>/blobServices/default' --name '<Diagnostic Settings name>' --query '{存储账户: storageAccountId, Log Analytics工作区: workspaceId, 事件中心: eventHubName}' -o json
内容的提问来源于stack exchange,提问作者Urwashi
相关产品推荐
相关产品推荐

