簡體   English   中英

Terraform Google 提供商,創建基於日志的警報策略

[英]Terraform Google provider, create log-based alerting policy

我需要通過 Terraform Google 雲提供商創建基於日志的警報策略: https://cloud.google.com/logging/docs/alerting/monitoring-logs#lba

我查看了 Terraform 官方文檔,我看到了“google_monitoring_alert_policy”資源: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy

我沒有在本文檔中找到如何創建基於日志的警報策略。
我可以創建類型為“指標”但類型為“日志”的警報策略

在此處輸入圖像描述

我使用最新版本的 Terraform 谷歌雲提供商:https://registry.terraform.io/providers/hashicorp/google/latest

請問如何使用 Terraform Google 提供商創建基於日志的警報策略?

在此先感謝您的幫助。

謝謝紀堯姆。

是的,這就是我解決問題的方式。

現在無法通過 Terraform 直接創建“日志”類型的警報。

解決這個問題的步驟:

  • 使用預期過濾器創建基於非日志的指標
  • 根據先前創建的基於日志的指標創建類型為“指標”的警報策略
resource "google_logging_metric" "my_log_metrics" {
  project = var.project_id
  name = "my-log-metric"
  filter = "..."
  description = "..."
  metric_descriptor {
    metric_kind = "..."
    value_type = "..."
  }
}

resource "google_monitoring_alert_policy" "my_policy" {
  project = var.project_id
  display_name = "my-policy"
  combiner = "OR"
  conditions {
    display_name = "my-policy"
    condition_threshold {
      filter = "metric.type=\"logging.googleapis.com/user/my-log-metric\" AND resource.type=\"cloud_composer_environment\""
    ...
    }
}

谷歌提供商的 4.7.0 版本解決了問題,它添加了condition_matched_log 這是一個工作示例:

resource "google_monitoring_notification_channel" "email-me" {
  display_name = "Email Me"
  type = "email"
  labels = {
    email_address = "me@mycompany.com"
  }
  
}

resource "google_monitoring_alert_policy" "workflows" {
  display_name = "Workflows alert policy"
  combiner     = "OR"
  conditions {
    display_name = "Error condition"
    condition_matched_log {
      filter = "resource.type=\"workflows.googleapis.com/Workflow\" severity=ERROR"
    }
  }

  notification_channels = [ google_monitoring_notification_channel.email-me.name ]
  alert_strategy {
    notification_rate_limit {
      period = "300s"
    }
  }
}

格式為logging.googleapis.com/user/<user metrics name>

看這個例子(沒有通知,只有警報政策)

resource "google_monitoring_alert_policy" "alert_policy" {
  display_name = "My Alert Policy"
  combiner     = "OR"
  conditions {
    display_name = "test condition"
    condition_threshold {
      filter     = "metric.type=\"logging.googleapis.com/user/test-metrics\" AND resource.type=\"cloud_run_revision\""
      duration   = "600s"
      comparison = "COMPARISON_GT"
      threshold_value = 1
      }
    }

  user_labels = {
    foo = "bar"
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM