【问题标题】:Stackdriver "Alert & Notification" in GCP using Terraform使用 Terraform 在 GCP 中的 Stackdriver“警报和通知”
【发布时间】:2021-05-29 15:40:37
【问题描述】:

我无法在 Stackdriver 中设置警报和通知。能够使用 Terraform 配置通知通道和正常运行时间检查。以下是我正在使用的代码。

resource "google_monitoring_notification_channel" "basic" {
  display_name = "Test Notification Channel"
  type         = "email"
  labels = {
    email_address = "fakeid007@gmail.com"
  }
  project = "department1"
}
resource "google_monitoring_uptime_check_config" "http" {
  display_name = "01 - Website uptime check [global]"
  timeout = "10s"
  period = "60s"
  project = "department1"

  http_check {
    path = "/"
    port = "80"
    mask_headers = null
    use_ssl = null
    validate_ssl = null
    request_method = "GET"
  }

  monitored_resource {
    type = "uptime_url"
    labels = {
      host = "35.184.98.16"
    }
  }
}

但我无法弄清楚下面的部分,这可以通过手动干预来实现。

在图片中可以看到我用terraform创建的通知通道是可见的。

请求帮助我自动化警报和通知。

【问题讨论】:

    标签: terraform terraform-provider-gcp


    【解决方案1】:

    我找不到通过 TF、gcloud 或 API 执行此操作的方法。

    最后我使用了google_monitoring_alert_policy,使用带有condition_monitoring_query_language 块的监控查询语言查询,大致如下:

    resource "google_monitoring_alert_policy" "some-uptime-monitor-policy" {
      display_name = "Some Uptime Monitor"
     
      conditions {
        display_name = "Some Site Unavailable"
    
        condition_monitoring_query_language {
            query = "fetch uptime_url | metric 'monitoring.googleapis.com/uptime_check/check_passed' | filter (resource.host == 'somesite.com') | group_by 1m, [value_check_passed_count_true: count_true(value.check_passed)] | every 5m | condition value_check_passed_count_true < 1 '1'"
            duration = "60s" 
            }
        }
      }
    

    我有几台显示器,这就是我采用condition_monitoring_query_language 方式的原因,如果您有一台显示器,您可以使用condition_threshold 代替它。我发现由于多站点要求,我无法通过 condition_threshold 获得我想要的东西

    【讨论】:

    • 您上面的代码还需要一个参数 combiner = "" 而我使用了 OR。当我使用您的代码单独执行代码时,出现以下错误:
    • 错误 400:这个 'group_by' 对齐器要求对齐窗口与对齐周期相同,但其对齐窗口 1m 与对齐周期 5m 不同。对齐窗口要么作为对齐器的参数给出,要么在后续的“窗口”表操作中给出。对齐周期由后续的“每个”表操作设置。这个问题可以通过不明确给出窗口、不明确给出句点或使它们都相同来解决。"
    猜你喜欢
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 2019-03-16
    • 2019-10-22
    • 2019-04-02
    • 2021-03-29
    相关资源
    最近更新 更多