Как создавать оповещения для ресурсов Azure с помощью Terraform

Я подготовил сценарии Terraform для ресурсов Azure, таких как служба приложений, план службы приложений, учетная запись хранения, приложение логики и т. Д.….

Я успешно развернул указанные выше скрипты Terraform. Но я хочу настроить оповещения для вышеуказанных ресурсов с помощью Terraform.

Есть ли способ создавать оповещения с помощью Terraform без развертывания шаблона ARM?


person Pradeep    schedule 22.12.2020    source источник


Ответы (1)


Конечно, есть. Это пример настраиваемого поиска в журнале из 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           = "[email protected]"
    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
  }
}
person silent    schedule 22.12.2020
comment
У меня нет таких примеров. И ТАК не нам, чтобы делать всю работу за вас;) Этого образца должно быть достаточно, чтобы вы разобрались с остальным самостоятельно. Может быть, начать с создания таких предупреждений вручную через портал и извлечь оттуда необходимые элементы, такие как запрос, в Terraform. - person silent; 22.12.2020