用Terraform监控GCP项目。

6

我在Google Cloud上有一个 "监控" 项目,希望它可以监控其他几个项目的指标。在Cloud Console中,我可以轻松地将这些项目添加到我的监控项目的指标范围内。但是,我想在Terraform中自动化这个过程。有人知道怎么做吗?


你是在寻找这个吗?https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy 否则,你能详细说明你想要实现什么以及你卡在哪里了吗? - guillaume blaquiere
这只是一个警报策略,它不会激活或配置监控项目(例如定义项目范围)。 - Patrick W
显然还没有这样的模块 :| 非常古老的参考资料: github.com/hashicorp/terraform-provider-google/issues/2605 和 https://discuss.hashicorp.com/t/adding-monitoring-scopes-in-google-cloud/28410 - m02ph3u5
2个回答

1

这个有教程吗? - Girolamo
https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_dashboard#example-usage---monitoring-dashboard-basic - Girolamo

0
要使用terraform将多个被监控的项目添加到一个监控项目中,请使用google_monitoring_monitored_project资源。
使用以下语法,源自此帖子: https://cloud.google.com/composer/docs/terraform-cross-project-monitoring

locals {
  project_id           = "MY_MONITORING_PROJECT"
  metric_scopes = toset([
    "MY_MONITORED_PROJECT_1",
    "MY_MONITORED_PROJECT_2",
    "MY_MONITORED_PROJECT_3"
  ]) # List of projects included in metric scopes for MY_MONITORING_PROJECT.
}

resource "google_monitoring_monitored_project" "projects_monitored" {
  #provider      = google-beta # for versions before 4.2.0
  for_each      = local.metric_scopes
  metrics_scope = join("", ["locations/global/metricsScopes/", local.project_id])
  name          = each.value
}

您需要在每个被监控的项目上至少拥有roles/monitoring.metricsScopesAdminroles/monitoring.admin角色,才能将它们添加到范围内。
在提供者4.77中存在一个bug,导致无法添加名称与其project_id不同的项目,从而引发403错误。如果这仍然是一个问题,您可以在重命名之前将项目添加到范围内作为解决方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接