Azure CLI 监视所有虚拟机的指标

Azure CLI monitor metrics of all virtual machines

我想使用 Azure CLI 监视订阅中所有虚拟机的指标。根据 Microsoft 的 "az monitor metrics alert" 文档,为特定资源 ID 创建的每个警报,例如:

az monitor metrics alert create -n alert1 -g {ResourceGroup} --scopes {VirtualMachineID} --condition "avg Percentage CPU > 90" --description "High CPU"

我可以为所有 VM 创建警报以监控高CPU(而不是创建与特定 VM 关联的许多警报)吗? 此外,如何将我的电子邮件配置为警报操作?

谢谢。

从语法上看,如果我们只是将逗号分隔的资源 ID 列表传递给 --scope 参数,我们应该能够为多个资源创建指标警报。但似乎并没有达到预期的效果。

作为一种替代方法,您可以配置一个 ARM 模板来创建 Azure Monitor Metrics 警报,该警报可以 target/monitor 一个或多个资源组或订阅中的多个资源。

您可以参考 this 文档,了解如何为监控多个资源的指标警报构建 ARM 模板。

在此模板中,您需要为操作组提供操作组 ID,它指定警报触发时要采取的操作。要获取操作组 ID,请使用 Set-AzActionGroup 创建一个操作组,您可以在其中指定在 -Receiver 参数中接收电子邮件的操作。

配置模板和模板参数 JSON 文件后,您可以使用以下 Az CLI cmdlet 块将其部署到 Azure 中:

Connect-AzAccount
Select-AzSubscription -SubscriptionName <yourSubscriptionName>
New-AzResourceGroupDeployment -Name myDeployment -ResourceGroupName <ResourceGroupWhereRuleShouldbeSaved> -TemplateFile template.json -TemplateParameterFile templateparams.parameters.json

希望对您有所帮助!