如何使用 terraform 设置资源健康警报条件
Posted
技术标签:
【中文标题】如何使用 terraform 设置资源健康警报条件【英文标题】:How to set resource health alert condition with terraform 【发布时间】:2021-03-02 10:12:34 【问题描述】:我正在尝试使用 terraform 创建资源健康警报,非常简单非常 terraform
resource "azurerm_monitor_activity_log_alert" "resourcehealth"
name = "$var.client_initial-MCS Optimise Resource Health"
description = "$var.client_initial-MCS Optimise Resource Health Alerts"
resource_group_name = var.resource_group_name
scopes = [var.scopes]
criteria
category = "ResourceHealth"
action
action_group_id = var.action_group_id
tags = var.tags
但是,我发现它缺乏进一步设置粒度警报条件的能力,例如我们只想在当前资源状态降级或不可用时发出警报,并且 reson 类型是平台启动的。 Terraform 似乎满足了所有条件。
【问题讨论】:
目前我们似乎无法做到这一点:github.com/terraform-providers/terraform-provider-azurerm/… 嗨,Jim,确实,这是为了服务健康,但对于资源健康也是如此。我又开了一个话题github.com/terraform-providers/terraform-provider-azurerm/… 根据情况,我建议你使用arm模板来实现你的需要。更多详情请参考docs.microsoft.com/en-us/azure/service-health/… 【参考方案1】:单一资源范围
resource "azurerm_monitor_activity_log_alert" "resourcehealth"
name = "$var.client_initial-MCS Optimise Resource Health"
description = "$var.client_initial-MCS Optimise Resource Health Alerts"
resource_group_name = var.resource_group_name
scopes = [var.scope]
criteria
resource_id = var.scope
operation_name = "Microsoft.Resourcehealth/healthevent/Activated/action"
category = "ResourceHealth"
action
action_group_id = var.action_group_id
tags = var.tags
对于多个资源,使用 for_each
resource "azurerm_monitor_activity_log_alert" "resourcehealth"
for_each = var.scopes
name = "$var.client_initial-MCS Optimise Resource Health"
description = "$var.client_initial-MCS Optimise Resource Health Alerts"
resource_group_name = var.resource_group_name
scopes = [each.key]
criteria
resource_id = each.key
operation_name = "Microsoft.Resourcehealth/healthevent/Activated/action"
category = "ResourceHealth"
action
action_group_id = var.action_group_id
tags = var.tags
【讨论】:
以上是关于如何使用 terraform 设置资源健康警报条件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Terraform 的 CloudWatch 指标警报
Terraform:Cloudwatch Canary Synthetics,如何创建指标警报
如何使用 Terraform 为 Elastic Beanstalk 环境定义条件(每个环境)设置?
有没有办法使用 terraform 配置 Azure 备份警报?