BLOG

Alarmreduzierung: Alarmprozesse automatisiert durch Terraform konfigurieren

Marko Simon
December 10, 2024
Table of Contents:

Mit zunehmender Zahl von Alarmen wird es immer schwieriger, sich auf die wichtigsten und kritischen Warnmeldungen zu konzentrieren. Eine Reduzierung von Alarmflut, d. h. die Vermeidung von zu vielen erstellten Alarmen und Nutzerbenachrichtigungen jeglicher Art, ist erforderlich, um eine effiziente Reaktion auf Alarme zu gewährleisten. Während dieses Thema in diesem Blogpost detailliert erläutert wird, kann ein flexibles und automatisiertes Setup für Ihre relevanten Ressourcen mit Terraform unter Verwendung des ilert Terraform Providers erreicht.

Ressourcenerstellung über Terraform

In diesem Beispiel erstellen wir eine Grafana-Alarmquelle und referenzieren dabei eine andere, bereits erstellte Eskalationskette mit einer ‘data source’.


data "ilert_escalation_policy" "engineering" {
  name = "Engineering"
}

resource "ilert_alert_source" "grafana" {
  integration_type  = "GRAFANA"
  name              = "Grafana"
  escalation_policy = data.ilert_escalation_policy.engineering.id
}

Wir können eingehende Ereignisse je nach ihrem Titel an verschiedene Eskalationsketten weiterleiten, indem wir ein Template für das Routing definieren, um einen Routingschlüssel zu setzen.


  routing_template {
    text_template = "{{ title.splitTakeAt(\" \",0) }}"
  }

Die Einrichtung von Support-Zeiten hilft dabei, Benachrichtigungen außerhalb der Arbeitszeiten zu verhindern und gleichzeitig durch eine hohe Alarmpriorität zu Aktionen während dieser Zeiten zu motivieren. 


resource "ilert_support_hour" "engineering" {
  name = "Engineering"
  timezone = "Europe/Berlin"
  support_days {
    monday {
      start = "09:00"
      end = "17:00"
    }
    tuesday {
      start = "09:00"
      end = "17:00"
    }
    wednesday {
      start = "09:00"
      end = "17:00"
    }
    thursday {
      start = "09:00"
      end = "17:00"
    }
    friday {
      start = "09:00"
      end = "17:00"
    }
  }
}

Weisen Sie diese Supportzeiten der Alarmquelle zu und legen Sie diese Regel für Alarmpriorität fest. 


  support_hours {
    id = ilert_support_hour.engineering.id
  }
  alert_priority_rule = "HIGH_DURING_SUPPORT_HOURS"

Sie können außerdem eine Zuordnung für die resultierende Priorität des Alarms erstellen, indem Sie ein Template und Zuordnungen in Abhängigkeit von Feldern im Event-Payload wie „Status“ definieren. 


  priority_template {
    value_template {
      text_template = "{{ state }}"
    }
    mapping {
      value = "alerting"
      priority = "HIGH"
    }
    mapping {
      value = "pending"
      priority = "LOW"
    }
  }

Eine flexible und effiziente Möglichkeit, eingehende Events herauszufiltern, ist der Eventfilter. Er ermöglicht komplexe Bedingungen und Prüfungen in vielen Feldern und Eigenschaften des Event-Payloads.


event_filter = "(event.customDetails.title in [\"FIRING\"])"

Eine weitere einfache, aber wirksame Methode zur Lärmreduzierung ist die Gruppierung von Alarmen, entweder durch zeitbasierte oder KI-basierte Gruppierung.


alert_creation = "INTELLIGENT_GROUPING"
score_threshold = "0.75"
alert_grouping_window = "PT1H" # 1 hour

Schließlich kann ein Timer für die automatische Auflösung eingestellt werden, um veraltete Alarme zu verhindern (Alarme, die über einen langen Zeitraum im Status „unerledigt“ oder „angenommen“ sind).


auto_resolution_timeout = "PT6H" # 6 hours

Das vollständige Terraform-Skript mit allen oben genannten Ressourcen finden Sie auf unserem öffentlichen Terraform-Playground.

Blog-Beiträge, die dir gefallen könnten:

Sind Sie bereit, Ihr Incident-Management zu verbessern?
Start for free
Unsere Cookie-Richtlinie
Wir verwenden Cookies, um Ihre Erfahrung zu verbessern, den Seitenverkehr zu verbessern und für Marketingzwecke. Erfahren Sie mehr in unserem Datenschutzrichtlinie.
Open Preferences
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.