我创建了一个策略,为范围内的每个 VM 创建指标警报。我在为该策略编写存在条件时遇到问题。仅当为 VM 部署了所有必需的警报时,才应将资源标记为合规。我不知道如何枚举现有警报(或资源,因为警报已经是资源)并检查是否配置了所需数量的警报。
据我所知 Microsoft.Resources\resourceGroups 没有我可以在存在条件检查中使用的策略别名。我尝试检查警报本身中的别名,但如果至少有 1 个警报(应该存在 4 个),它仍然将 VM 标记为合规:
"allOf": [
{
"field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName",
"in": ["Percentage CPU", "Available Memory Bytes", "Disk Write Bytes", "Disk Read Bytes"]
},
{
"field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName",
"in": ["Percentage CPU", "Available Memory Bytes", "Disk Write Bytes", "Disk Read Bytes"]
},
{
"field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName",
"in": ["Percentage CPU", "Available Memory Bytes", "Disk Write Bytes", "Disk Read Bytes"]
},
{
"field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName",
"in": ["Percentage CPU", "Available Memory Bytes", "Disk Write Bytes", "Disk Read Bytes"]
}
]
如果检查设置为包含或匹配条件,则它也将不起作用,因为警报是按随机顺序评估的,因此策略会查找内存警报中的CPU 百分比。
有没有人遇到过这样的问题或知道如何解决它?