Terraform创建的Azure计划型查询警报规则无法正常工作求助
Terraform创建的Azure计划型查询警报规则无法正常工作求助
嘿,我看你用Terraform配置Azure的计划型查询警报规则遇到问题了,先别着急,咱们一步步来排查。首先先把你贴的代码整理清楚,方便分析:
resource "azurerm_monitor_scheduled_query_rules_alert_v2" "failed_alert" { name = "test" resource_group_name = var.rg_name description = "desc" scopes = [var.app_insights_id] location = var.location evaluation_frequency = "PT5M" window_duration = "PT5M" severity = 0 auto_mitigation_enabled = false enabled = true criteria { query = <<-QUERY requests | where success == 'False' | project timestamp, name, success, itemType, duration, operation_Name QUERY operator = "GreaterThanOrEqual" threshold = 1 time_aggregation_method = "Count" failing_periods { minimum_failing_periods_to_trigger_alert = 1 number_of_evaluation_periods = 1 } } # 这里应该还有动作组等后续配置吧?比如action_groups = [...] }
接下来给你几个排查的方向,你可以逐一试试:
- 先验证查询本身:去你的App Insights里的日志查询页面,把这段Kusto查询复制进去跑一遍,看看能不能返回符合条件的失败请求。如果手动跑都没结果,那警报肯定不会触发,得先确保有满足
success == 'False'的请求数据。 - 检查Scope权限和正确性:确认
var.app_insights_id是不是完全正确的App Insights资源ID,另外要保证Terraform用来部署的账号有这个App Insights的读取权限,不然警报规则没法拉取日志数据。 - 核对时间相关配置:你的评估频率和窗口时长都是5分钟,要注意查询的时间范围是和
window_duration绑定的,有没有可能是数据的时间戳和警报的窗口不匹配?比如数据是旧的,不在当前的5分钟窗口里。 - 验证聚合和触发逻辑:你用的是
Count作为时间聚合方式,操作符是GreaterThanOrEqual,阈值1,触发条件是1个周期内至少1次失败。可以手动算一下,在一个5分钟窗口里,失败请求的数量有没有达到1?另外,failing_periods的配置是1个周期内只要有1次就触发,这个逻辑是对的,但要确认聚合后的数值是不是真的满足>=1。 - 检查是否配置了动作组:如果前面的逻辑都没问题,但你没配置
action_groups的话,警报触发了也不会有任何通知,看起来就像没工作一样。记得要把动作组ID加进去,这样触发后才能收到邮件、短信之类的通知。
如果排查完这些还是有问题,可以把警报规则的状态、App Insights的查询结果的文字描述补充一下,这样能更精准地定位问题~
备注:内容来源于stack exchange,提问作者michasaucer
相关产品推荐
相关产品推荐

