Настройка уведомлений об алертах с помощью Terraform
Конфигурации уведомлений об алертах в Knowledge Graph позволяют управлять тем, как алерты обрабатываются и маршрутизируются. Вы можете указать метки соответствия для фильтрации алертов, добавлять пользовательские метки, задавать требования к длительности и управлять отключением уведомлений.
Сведения о настройке уведомлений об алертах в интерфейсе Knowledge Graph см. в разделе Configure notifications.
Базовая настройка уведомлений об алертах
Создайте файл с именем alert-configs.tf и добавьте следующее:
# Basic alert configuration with silencing
resource "grafana_asserts_notification_alerts_config" "prometheus_remote_storage_failures" {
provider = grafana.asserts
name = "PrometheusRemoteStorageFailures"
match_labels = {
alertname = "PrometheusRemoteStorageFailures"
alertgroup = "prometheus.alerts"
asserts_env = "prod"
}
silenced = true
}
# High severity alert with specific job and context matching
resource "grafana_asserts_notification_alerts_config" "error_buildup_notify" {
provider = grafana.asserts
name = "ErrorBuildupNotify"
match_labels = {
alertname = "ErrorBuildup"
job = "acai"
asserts_request_type = "inbound"
asserts_request_context = "/auth"
}
silenced = false
}
Уведомления об алертах с дополнительными метками и длительностью
Настройте алерты с пользовательскими метками и требованиями ко времени:
# Alert with additional labels and custom duration
resource "grafana_asserts_notification_alerts_config" "payment_test_alert" {
provider = grafana.asserts
name = "PaymentTestAlert"
match_labels = {
alertname = "PaymentTestAlert"
additional_labels = "asserts_severity=~\"critical\""
alertgroup = "alex-k8s-integration-test.alerts"
}
alert_labels = {
testing = "onetwothree"
}
duration = "5m"
silenced = false
}
Уведомления об алертах по задержкам и производительности
Отслеживайте проблемы с задержками и производительностью и оповещайте о них:
# Latency alert for shipping service
resource "grafana_asserts_notification_alerts_config" "high_shipping_latency" {
provider = grafana.asserts
name = "high shipping latency"
match_labels = {
alertname = "LatencyP99ErrorBuildup"
job = "shipping"
asserts_request_type = "inbound"
}
silenced = false
}
# CPU throttling alert with warning severity
resource "grafana_asserts_notification_alerts_config" "cpu_throttling_sustained" {
provider = grafana.asserts
name = "CPUThrottlingSustained"
match_labels = {
alertname = "CPUThrottlingSustained"
additional_labels = "asserts_severity=~\"warning\""
}
silenced = true
}
Уведомления об алертах для инфраструктуры и сервисов
Настройте алерты для инфраструктурных компонентов и сервисов:
# Ingress error rate alert
resource "grafana_asserts_notification_alerts_config" "ingress_error" {
provider = grafana.asserts
name = "ingress error"
match_labels = {
alertname = "ErrorRatioBreach"
job = "ingress-nginx-controller-metrics"
asserts_request_type = "inbound"
}
silenced = false
}
# MySQL Galera cluster alert
resource "grafana_asserts_notification_alerts_config" "mysql_galera_not_ready" {
provider = grafana.asserts
name = "MySQLGaleraNotReady"
match_labels = {
alertname = "MySQLGaleraNotReady"
}
silenced = false
}
Справочник по ресурсам
grafana_asserts_notification_alerts_config
Управление конфигурациями уведомлений об алертах Knowledge Graph через API Grafana.
Аргументы
Пример
resource "grafana_asserts_notification_alerts_config" "example" {
provider = grafana.asserts
name = "ExampleAlert"
match_labels = {
alertname = "HighCPUUsage"
job = "monitoring"
}
alert_labels = {
severity = "warning"
team = "platform"
}
duration = "5m"
silenced = false
}
Рекомендации
При управлении уведомлениями об алертах с помощью Terraform учитывайте следующие рекомендации.
Управление метками
- Используйте конкретные и осмысленные метки в
match_labels, чтобы обеспечить точную фильтрацию алертов - Используйте существующие соглашения о метках из вашей системы мониторинга
- Рассмотрите использование меток
asserts_envиasserts_siteдля конфигураций с несколькими средами
Стратегия отключения уведомлений
- Используйте параметр
silencedдля временного подавления вместо удаления конфигураций уведомлений об алертах - Документируйте причину отключения в комментариях к вашей конфигурации Terraform
- Регулярно проверяйте отключённые конфигурации, чтобы убедиться, что они всё ещё нужны
Настройка длительности
- Устанавливайте подходящие значения длительности исходя из ваших требований к алертам
- Учитывайте природу отслеживаемого условия при выборе длительности
- Используйте согласованные форматы длительности для однотипных алертов
Проверка
После применения конфигурации Terraform убедитесь, что:
- Конфигурации уведомлений об алертах созданы в вашем экземпляре Knowledge Graph
- Конфигурации отображаются в интерфейсе Knowledge Graph в разделе Observability > Rules > Notify
- Метки соответствия корректно фильтруют нужные алерты
- Пользовательские метки правильно применяются к созданным алертам