개발하자
Terraform Google 공급자, 로그 기반 알림 정책 생성
Cuire
2023. 1. 28. 14:15
반응형
Terraform Google 공급자, 로그 기반 알림 정책 생성
Terraform Google 클라우드 공급자를 통해 로그 기반 경고 정책을 만들어야 합니다:
Terraform 공식 문서에서 확인한 결과 'google_monitoring_alert_policy' 리소스를 확인했습니다:
이 문서에서는 로그 기반 경고 정책을 만드는 방법을 찾을 수 없습니다. 'Metrics' 유형으로는 경고 정책을 생성할 수 있지만 'Logs' 유형으로는 생성할 수 없습니다
나는 Terraform Google 클라우드 제공자의 최신 버전을 사용한다:
Terraform Google 공급자로 로그 기반 경고 정책을 만들려면 어떻게 해야 합니까?
당신의 도움에 미리 감사드립니다.
형식은
이 예를 참조하십시오(알림 없음, 알림 정책만 해당)
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"
}
}
고마워요, 기욤.
네, 그것이 제가 문제를 해결한 방법입니다.
이제 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으로 해결되었으며, 이는 다음을 추가한다. 다음은 작업 예입니다:
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"
}
}
}
반응형