问题描述
我已经为应用服务、应用服务计划、存储帐户和逻辑应用等 Azure 资源准备了 terraform 脚本......
我已经成功部署了上述 terraform 脚本。但我想使用 terraform 为上述资源配置警报。
有没有办法在没有 ARM 模板部署的情况下使用 terraform 创建警报?
解决方法
当然有。这是来自 Application Insights 的自定义日志搜索示例。但是您可以轻松地为其他来源(如 Azure Monitor)修改它
resource "azurerm_application_insights" "example" {
name = "${var.prefix}-appinsights"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
application_type = "web"
retention_in_days = 30
}
resource "azurerm_monitor_action_group" "example" {
name = "CriticalAlertsAction"
resource_group_name = azurerm_resource_group.example.name
short_name = "p0action"
email_receiver {
name = "sendtoadmin"
email_address = "admin@example.com"
use_common_alert_schema = true
}
}
resource "azurerm_monitor_scheduled_query_rules_alert" "example-alert1" {
name = "${var.prefix}-alertrule1"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
action {
action_group = [
azurerm_monitor_action_group.example.id
]
}
data_source_id = azurerm_application_insights.example.id
description = "Exception threshold reached"
enabled = true
# Count all requests with server error result code grouped into 5-minute bins
query = <<-QUERY
requests
| where cloud_RoleName == "frontend" and name !contains "Health" and resultCode startswith "5"
QUERY
severity = 1
frequency = 5
time_window = 5
trigger {
operator = "GreaterThan"
threshold = 10
}
}