我有一个"监视器";项目在Google Cloud中,并希望它监控其他几个项目的指标。在Cloud Console上,我可以轻松地将这些项目添加到Monitor项目的度量范围中。然而,我想在Terraform中自动化这个过程。有人知道怎么做吗?
是的,您可以使用terraform实现。您需要有一个范围界定项目或一个新项目,该项目将托管来自其他项目的指标。
然后您可以使用下面的地形资源将项目添加为监视项目:
https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_monitored_project
要使用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.metricsScopesAdmin
或roles/monitoring.admin
来将它们添加到范围中。
provider 4.77中有一个错误,阻止添加名称与project_id不同的项目,导致403错误。作为一种解决方法,如果这仍然是一个问题,您可以在重命名之前将项目添加到范围。