Terraform을 사용하는 경우 Personalized Service Health에 표시되는 서비스 상태 이벤트에 대한 알림을 설정할 수 있습니다. 이 문서에서는 방법을 설명합니다.
시작하기 전에
- 알림을 만들려는 프로젝트에 Service Health API를 사용 설정합니다.
- Terraform 구성에 알림 채널이 정의되어 있어야 합니다. 자세한 내용은
google_monitoring_notification_channel
리소스에 관한 문서를 참고하세요.
구성 예시
다음 Terraform 구성 예에서는 모든 새 이슈 및 모든 업데이트에 대해 맞춤 서비스 상태 및 알림을 사용 설정합니다.
provider "google" {
project = "PROJECT_ID"
}
resource "google_project_service" "project" {
service = "servicehealth.googleapis.com"
}
resource "google_monitoring_alert_policy" "alert_policy_all" {
display_name = "All incidents, all updates"
combiner = "OR"
enabled = "true"
conditions {
display_name = "test condition"
condition_matched_log {
filter = "resource.type = \"servicehealth.googleapis.com/Event\" AND jsonPayload.category = \"INCIDENT\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\""
label_extractors = {
state = "EXTRACT(jsonPayload.state)"
description = "EXTRACT(jsonPayload.description)"
impactedProducts = "EXTRACT(jsonPayload.impactedProducts)"
startTime = "EXTRACT(jsonPayload.startTime)"
title = "EXTRACT(jsonPayload.title)"
impactedLocations = "EXTRACT(jsonPayload.impactedLocations)"
}
}
}
documentation {
content = "### $${log.extracted_label.title}\nCheck out [Personalized Service Health dashboard](https://console.cloud.google.com/servicehealth/incidentDetails/projects%2F${resource.labels.resource_container}%2Flocations%2F${resource.labels.location}%2Fevents%2F${resource.labels.event_id}?project=${resource.labels.resource_container}) for more details.<br><br> Description: $${log.extracted_label.description}<br><br> Impacted products: $${log.extracted_label.impactedProducts}<br><br> Impacted locations: $${log.extracted_label.impactedLocations}<br><br> Incident start time: $${log.extracted_label.startTime}<br><br> State: $${log.extracted_label.state}"
mime_type = "text/markdown"
}
alert_strategy {
notification_rate_limit {
period = "300s"
}
}
notification_channels = ["projects/PROJECT_ID/notificationChannels/NOTIFICATION_CHANNEL"]
user_labels = { # Add any extra labels that might be helpful
scope = "all"
}
}
서비스 servicehealth.googleapis.com
는 Personalized Service Health를 참조하며 필터는 모든 이벤트를 가져옵니다. 설정할 수 있는 필드는 Service Health API 참조를 확인하세요.
이전 구성은 Service Health 대시보드 내에서 알림을 설정할 때 모든 이슈, 모든 업데이트 옵션을 선택하는 것과 같습니다.
알림 정책에서 설정할 수 있는 필드에 대한 자세한 내용은 다음 페이지를 참고하세요.
google_monitoring_alert_policy
리소스의 문서입니다.Terraform 구성의
filter
필드에 추가하고 알림이 트리거되는 시점을 정의할 수 있는 알림 조건 예시입니다.