如何通过Terraform创建含自定义KQL查询的Azure Monitor日志警报
使用Terraform创建Azure虚拟机CPU使用率警报规则
环境说明
我在Resource-Group-Dev资源组中有2台已连接到Log Analytics工作区的Linux虚拟机,层级结构如下:
Scope-Dev ->Resource-Group-Dev -->VM-Dev-1 -->VM-Dev-2
需求
需创建满足以下条件的警报规则:
- 作用域:
Resource-Group-Dev下的所有虚拟机 - 触发条件:使用自定义KQL查询(查询语句见下文)
- 维度:KQL查询结果中的
Computer字段(用于操作组)
Terraform配置代码
# 配置Azure Provider terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 3.0" } } } provider "azurerm" { features {} } # 获取目标资源组信息 data "azurerm_resource_group" "dev" { name = "Resource-Group-Dev" } # 获取Log Analytics工作区(替换为你的工作区名称) data "azurerm_log_analytics_workspace" "dev" { name = "your-log-analytics-workspace-name" resource_group_name = data.azurerm_resource_group.dev.name } # 创建计划查询警报规则 resource "azurerm_monitor_scheduled_query_rules_alert" "vm_cpu_alert" { name = "VM-Dev-CPU-Usage-Alert" location = data.azurerm_resource_group.dev.location resource_group_name = data.azurerm_resource_group.dev.name scopes = [data.azurerm_resource_group.dev.id] # 作用域覆盖资源组内所有VM # 自定义KQL查询 query = <<-QUERY Perf | where TimeGenerated > ago(60m) | where (ObjectName == "Processor") | summarize AggregatedValue = avg(CounterValue) by Computer , _ResourceId | where AggregatedValue < 100 | project Computer, AggregatedValue , _ResourceId QUERY data_source_id = data.azurerm_log_analytics_workspace.dev.id # 查询频率与时间窗口 frequency = 60 time_window = 60 # 触发条件设置 trigger { threshold_operator = "LessThan" threshold = 100 metric_trigger { threshold_operator = "LessThan" threshold = 100 metric_column = "AggregatedValue" } } # 维度配置:按Computer字段拆分警报 dimension { name = "Computer" operator = "Include" values = ["*"] } # 可选:关联操作组(替换为你的操作组ID) # action { # action_group_id = "/subscriptions/your-sub-id/resourceGroups/Resource-Group-Dev/providers/microsoft.insights/actionGroups/your-action-group" # } }
关键配置说明
- 作用域:通过
scopes参数指定目标资源组ID,实现覆盖该资源组下所有虚拟机的效果 - KQL查询:直接嵌入需求中的自定义查询语句,筛选过去60分钟内CPU使用率低于100的虚拟机数据
- 维度拆分:通过
dimension块配置Computer字段,确保每个虚拟机的警报独立触发,便于后续关联操作组进行针对性通知
内容的提问来源于stack exchange,提问作者praveen
相关产品推荐
相关产品推荐

