我想使用 Azure 资源图表创建 Azure 警报规则,这些表在 Azure Log Analytics 中不可用。使用 Azure CLI,可以将查询发送到 Azure Resource Graph,例如:
az graph query "<QUERY>" --query count
是否可以根据此查询的结果创建 Azure 警报?
最佳答案
没有直接的方法可以使用图形查询
创建警报。以下是我创建它的方法。
方法 1:
您可以借助在 azCLI
中运行的 terraform 来创建它。请参阅SO .
方法 2:
使用 az monitor
命令的计划查询
参数,我根据您的要求在给定范围内创建了一个警报。
我尝试创建一个示例警报,它对我有用。
az monitor scheduled-query create -g "xxxxresourcegroup" -n "xxxalert" --scopes "/subscriptions/<subscriptionID>/resourcegroups/xxxxresourcegroup/providers/Microsoft.Compute/virtualMachines/xxxxxVMName" --condition "count 'Placeholder_1' > 360 resource id _ResourceId at least 1 violations out of 5 aggregated" --condition-query Placeholder_1="union Event | where TimeGenerated > ago(3h) | where EventLevelName=='xxxxxError' or SeverityLevel=='xxxerror'" --description "xxxxxxxxx"
输出:
方法 3:
通过在 azCli
中使用 az Monitor Metrics Alert
,您可以在不使用查询的情况下构建它。
我使用了一个示例警报来检查 CPU 的状况 (CPU %>50),并且能够执行该警报,如下所示:
az monitor metrics alert create -n alert1 -g "xxxxxresourcegroup" --scopes "/subscriptions/< Subscription_ID >/resourcegroups/<resourcegroupName>/providers/Microsoft.Compute/virtualMachines/xxxVMName" --condition "avg Percentage CPU > 50" --description "CPU Percentage"
输出:
方法 4:
通常,我们可以通过从所需资源执行日志查询来创建警报规则,然后创建新的警报规则。
我尝试使用示例查询来检查虚拟机日志上是否缺少软件更新。
点击新警报规则
,搜索查询
将自动更新,并选择如何汇总结果。
添加警报逻辑
。当指定事件达到阈值 50 时,将通过发送电子邮件触发警报。
触发警报后,您可以从操作组中选择一项操作(如果您已定义),否则在触发警报之前创建一个操作。
提供警报规则名称和所需的详细信息。
新警报规则已成功创建。
引用:MsDoc
关于azure - 基于脚本的 Azure 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74563131/