我已经为应用服务、AppService 计划、存储帐户和逻辑应用等 Azure 资源准备了 Terraform 脚本……。
我已经成功部署了上述 Terraform 脚本。但我想使用 Terraform 为上述资源配置警报。
有什么方法可以在没有 ARM 模板部署的情况下使用 Terraform 创建警报?
我已经为应用服务、AppService 计划、存储帐户和逻辑应用等 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
}
}