azure - 如何在 terraform 中为 SQL DB 创建警报规则

标签 azure monitor terraform-provider-azure azure-alerts

我似乎找不到任何示例,并且根据我正在做的事情,我遇到了不同的错误。

我正在尝试让它发挥作用,但它只是没有发生......有什么想法吗?

resource "azurerm_monitor_metric_alert" "example" {
  name                = "example-metricalert"
  resource_group_name = azurerm_resource_group.example.name
  scopes              = [azurerm_mssql_database.test.server_id]
  description         = "Action will be triggered when cpu is greater than 80%."

  criteria {
    metric_namespace = "Microsoft.Sql/servers/databases"
    metric_name      = "CPU_percentage"
    aggregation      = "Average"
    operator         = "GreaterThan"
    threshold        = 80
}

}

最佳答案

您可以使用以下代码为 SQL DB 创建指标警报。我已经针对现有的 SQL DB 对其进行了测试,因此使用了数据 block 。

Main.tf

   provider "azurerm" {
  features {}
}


data "azurerm_mssql_server" "example" {
  name                = "ztestansumanserver"
  resource_group_name = "yourresourcegroup"
}

data "azurerm_mssql_database" "dbtomonitor" {
  name      = "testansumandb"
  server_id = data.azurerm_mssql_server.example.id
}

resource "azurerm_monitor_action_group" "example" {
  name                = "CriticalAlertsAction"
  resource_group_name = data.azurerm_mssql_server.example.resource_group_name
  short_name          = "p0action"

  email_receiver {
    name                    = "sendtoadmin"
    email_address           = "youremailid"
    use_common_alert_schema = true
  }
}

resource "azurerm_monitor_metric_alert" "example" {
  name                = "example-metricalert"
  resource_group_name = data.azurerm_mssql_server.example.resource_group_name
  scopes              = [data.azurerm_mssql_database.dbtomonitor.id]
  description         = "Action will be triggered when cpu percent is greater than 80."

  criteria {
    metric_namespace = "Microsoft.Sql/servers/databases"
    metric_name      = "cpu_percent"
    aggregation      = "Average"
    operator         = "GreaterThan"
    threshold        = 80
  }
 action {
    action_group_id = azurerm_monitor_action_group.example.id
  }
}

输出:

enter image description here

注意:根据上述脚本警报已成功创建,并且当 cpu_percent > 80 时,它还会触发向您发送邮件。

引用:

Azure Monitor supported metrics by resource type - Azure Monitor | Microsoft Docs

关于azure - 如何在 terraform 中为 SQL DB 创建警报规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69019459/

相关文章:

c# - 在 Microsoft.ServiceBus.Messaging.QueueClient(响应式(Reactive)扩展)上使用 RX

azure - 如何将 parquet 文件从 Azure Blob 读取到 Pandas DataFrame 中?

terraform - 是否可以将 aks 自定义 header 与 azurerm_kubernetes_cluster 资源一起使用?

java - 在 Java 中使用 JNA 关闭监视器无法按预期工作

azure - 如何使用一个子模块的输出作为 Terraform 中另一个子模块的输入

Azure:如何使用 Terraform 在 Azure 中设置多重身份验证策略?

azure - 服务总线 1.0 无法创建队列或主题

json - 如何检查 ARM 模板变量/参数中的多个条件

containers - 如何监控kubernetes中的所有容器状态?

java - 这些线程在哪个对象上同步