如何获取Azure Action Group被哪些告警与资源引用的报告?
Azure Action Group关联告警规则及调用资源统计方案
前置准备
- 确认你拥有目标Action Group所在订阅的读取权限(至少是Monitoring Reader角色权限)
- 若使用命令行方式,需提前安装对应命令行工具并完成Azure账号登录
方法1:通过Azure CLI生成统计报告
- 首先获取目标Action Group的资源ID,替换命令中的占位符后执行:
az monitor action-group show --name <Action组名称> --resource-group <Action组所在资源组> --query id -o tsv - 用获取到的Action Group资源ID,查询所有关联的指标告警规则,同时提取规则关联的资源范围:
az monitor metrics alert list --query "[?contains(actions[].actionGroupId, '<上一步获取的Action组资源ID>')].{AlertRuleName:name, AlertRuleResourceGroup:resourceGroup, AssociatedResources:scopes}" -o table - 若需同时查询日志类告警规则(Log Alerts),额外执行以下命令:
az monitor scheduled-query list --query "[?contains(actionGroups[].actionGroupId, '<上一步获取的Action组资源ID>')].{AlertRuleName:name, AlertRuleResourceGroup:resourceGroup, AssociatedResources:scopes}" -o table
执行以上命令后输出的内容可直接导出为CSV格式作为报告使用。
方法2:通过Azure PowerShell查询
- 获取目标Action Group资源ID:
$agId = (Get-AzActionGroup -ResourceGroupName <Action组所在资源组> -Name <Action组名称>).Id - 查询所有关联的指标告警规则:
Get-AzMetricAlertRuleV2 | Where-Object {$_.Actions.ActionGroupId -contains $agId} | Select-Object Name,ResourceGroupName,Scopes | Format-Table -AutoSize - 查询所有关联的日志类告警规则:
Get-AzScheduledQueryRule | Where-Object {$_.ActionGroups.ActionGroupId -contains $agId} | Select-Object Name,ResourceGroupName,Scopes | Format-Table -AutoSize
方法3:Azure门户手动查看(适合单次少量查询)
- 进入目标Action Group的详情页,点击顶部菜单的关联项选项卡
- 切换到「警报规则」分类,即可看到所有调用该Action Group的告警规则列表
- 点击任意告警规则名称进入详情页,即可查看该告警规则关联的所有Azure资源
内容的提问来源于stack exchange,提问作者Bibin
相关产品推荐
相关产品推荐

