Benachrichtigungsregeln über Ihr Projekt erstellen

Erstellen Sie in der GDC-Konsole Gruppen mit den Benachrichtigungsregeln für Messwerte oder Logs Ihres Projekts. Bei Messwertregeln werden Benachrichtigungen auf Grundlage von Messwertdaten gesendet, bei Logregeln auf Grundlage von Protokolldaten. Sie müssen den Ausdruck in der Abfragesprache eingeben, der bestimmt, ob die Benachrichtigung in den Status „Ausstehend“ verschoben werden muss. Außerdem können Sie optionale Werte wie Labels und Anmerkungen einfügen.

Mit Labels können Sie die Merkmale einer Benachrichtigung als Zuordnung von Schlüssel/Wert-Paaren unterscheiden. Mit Labels können Sie Informationen wie den Schweregrad (Fehler, kritisch, Warnung oder Information), den Benachrichtigungscode und einen Kurznamen zur Identifizierung der Ressource hinzufügen oder überschreiben.

Verwenden Sie dagegen Annotationen, um nicht identifizierbare Metadaten zu Benachrichtigungen hinzuzufügen. Sie können beispielsweise Werte für Nachrichten und Ausdrücke einfügen, die in Feldern der Benutzeroberfläche angezeigt werden, oder Runbook-URLs, um bei der Fehlerbehebung zu helfen.

Alternativ können Sie Benachrichtigungsregeln mit der Observability API erstellen, um direkt mit einer benutzerdefinierten Ressource zu interagieren und Änderungen in Ihrem Projektnamespace zu aktualisieren.

Hinweise

Bevor Sie fortfahren, sollten Sie prüfen, ob Sie die folgenden erforderlichen Berechtigungen haben:

Benachrichtigungsregeln basierend auf Logs erstellen

Bitten Sie Ihren Projekt-IAM-Administrator, Ihnen eine der folgenden Rollen in Ihrem Projekt-Namespace zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen oder Aufrufen von Benachrichtigungsregeln basierend auf Logs benötigen:

  • Logging Rule Creator: Erstellt benutzerdefinierte LoggingRule-Ressourcen. Fordern Sie die Rolle „Logging Rule Creator“ (loggingrule-creator) an.
  • Logging Rule Editor: Bearbeitet oder ändert benutzerdefinierte LoggingRule-Ressourcen. Fordern Sie die Rolle „Logging Rule Editor“ (loggingrule-editor) an.
  • Logging Rule Viewer: Zeigt benutzerdefinierte LoggingRule-Ressourcen an. Fordern Sie die Rolle „Logging Rule Viewer“ (loggingrule-viewer) an.

Benachrichtigungsregeln basierend auf Messwerten erstellen

Bitten Sie Ihren Projekt-IAM-Administrator, Ihnen eine der folgenden Rollen in Ihrem Projekt-Namespace zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen oder Aufrufen von Benachrichtigungsregeln basierend auf Messwerten benötigen:

  • Monitoring Rule Editor: Bearbeitet oder ändert benutzerdefinierte MonitoringRule-Ressourcen. Fordern Sie die Rolle „Monitoring Rule Editor“ (monitoringrule-editor) an.
  • Monitoring Rule Viewer: Kann benutzerdefinierte MonitoringRule-Ressourcen aufrufen. Fordern Sie die Rolle „Monitoring Rule Viewer“ (monitoringrule-viewer) an.

Weitere Informationen zu Rollenzuweisungen finden Sie unter Beschreibungen vordefinierter Rollen.

Regeln erstellen

Sie können Benachrichtigungsregeln mit der GDC-Konsole erstellen. Das ist die bevorzugte Methode. Alternativ können Sie eine benutzerdefinierte Ressource mit der Observability API in Ihrem Projekt-Namespace bereitstellen.

Console

Führen Sie die folgenden Schritte aus, um Benachrichtigungsregeln über die GDC-Konsole zu erstellen:

  1. Wählen Sie in der GDC Console ein Projekt aus.
  2. Klicken Sie im Navigationsmenü auf Vorgänge > Benachrichtigungen.
  3. Klicken Sie auf den Tab Benachrichtigungsrichtlinie.
  4. Klicken Sie auf Regelgruppe erstellen.
  5. Wählen Sie aus, ob Sie eine Gruppe für Messwerte oder Logs erstellen möchten. Bei Messwertregeln werden Benachrichtigungen auf Grundlage von Systemüberwachungsdaten gesendet, bei Logging-Regeln auf Grundlage von Systemlogging-Daten.
  6. Geben Sie im Feld Name der Benachrichtigungsregelgruppe einen Namen für die Gruppe ein.
  7. Geben Sie im Feld Regelbewertungsintervall die Anzahl der Sekunden für jedes Intervall ein.
  8. Geben Sie im Feld Limit die maximale Anzahl von Benachrichtigungen ein. Geben Sie 0 ein, um eine unbegrenzte Anzahl von Benachrichtigungen zu erhalten.
  9. Klicken Sie im Bereich Benachrichtigungsregeln auf Benachrichtigungsregel erstellen.
  10. Geben Sie einen Namen für die Benachrichtigungsregel ein.
  11. Geben Sie einen Ausdruck für die Benachrichtigungsregel ein:

    • Geben Sie für eine Systemprotokollierungsregel einen LogQL-Ausdruck (Log Query Language) ein.
    • Geben Sie für eine Systemüberwachungsregel einen PromQL-Ausdruck (Prometheus Query Language) ein.

    Dieser Ausdruck muss als „true“ oder „false“ ausgewertet werden. Er bestimmt, ob der Hinweis in den Status „Ausstehend“ verschoben werden muss oder nicht.

  12. Geben Sie im Feld Dauer die Anzahl der Sekunden ein, nach denen eine aktive Benachrichtigung vom Status „Ausstehend“ in den Status „Offen“ wechselt. Hinweis: Wenn Sie die Dauer auf den Wert 0 festlegen, sendet das Observability-System die Benachrichtigung sofort, nachdem die Bedingung erfüllt ist.

  13. Wählen Sie im Feld Schweregrad den Schweregrad aus, z. B. Fehler oder Warnung.

  14. Geben Sie einen Kurznamen zur Identifizierung der zugehörigen Ressource ein, z. B. AIS oder DHCP.

  15. Geben Sie einen Warnungscode ein, um die Warnung zu identifizieren.

  16. Geben Sie eine Runbook-URL oder Informationen ein, die bei der Behebung des Problems helfen.

  17. Geben Sie eine Nachricht oder Beschreibung für die Benachrichtigung ein.

  18. Optional: Klicken Sie auf Label hinzufügen, um Labels als Schlüssel/Wert-Paare hinzuzufügen.

  19. Optional: Klicken Sie auf Hinweis hinzufügen, um Hinweise als Schlüssel/Wert-Paare hinzuzufügen.

  20. Klicken Sie auf Speichern, um die Regel zu erstellen.

  21. Klicken Sie auf Erstellen, um die Regelgruppe zu erstellen. Die Regelgruppe wird in der Liste Regelgruppe für Benachrichtigungen angezeigt.

API

Sie können Systemüberwachungs- und Logging-Regeln in GDC erstellen, indem Sie benutzerdefinierte Ressourcen mit der Observability API bereitstellen. Eine benutzerdefinierte Ressource vom Typ MonitoringRule oder LoggingRule besteht aus einer oder mehreren Abfragen und Ausdrücken, die eine Bedingung bilden, der Häufigkeit der Auswertung und optional der Dauer, über die die Bedingung erfüllt wird.

Führen Sie die folgenden Schritte aus, um Benachrichtigungsregeln zu erstellen, indem Sie eine benutzerdefinierte Ressource in Ihrem Projekt-Namespace bereitstellen:

  1. Erstellen Sie eine YAML-Datei für die benutzerdefinierte Ressource. Verwenden Sie dazu die folgenden Vorlagen für Monitoring- oder Logging-Benachrichtigungsregeln:
  2. Geben Sie im Feld namespace der benutzerdefinierten Ressource Ihren Projekt-Namespace ein.
  3. Geben Sie im Feld name einen Namen für die Konfiguration der Benachrichtigungsregel ein.
  4. Optional: Wenn Sie die benutzerdefinierte Ressource LoggingRule für Logging-Regeln konfigurieren, können Sie im Feld source die Log-Quelle für Benachrichtigungen auswählen. Geben Sie beispielsweise einen Wert wie operational oder audit ein.
  5. Geben Sie im Feld interval die Anzahl der Sekunden für die Dauer des Intervalls für die Regelauswertung ein.
  6. Optional: Geben Sie im Feld limit die maximale Anzahl von Benachrichtigungen ein. Geben Sie 0 ein, wenn Sie eine unbegrenzte Anzahl von Benachrichtigungen erhalten möchten.
  7. Optional: Wenn Sie auch Messwerte berechnen und Aufzeichnungsregeln konfigurieren möchten, geben Sie die folgenden Informationen in das Feld recordRules ein:

    • Geben Sie im Feld record den Namen der Aufzeichnung ein. Dieser Wert definiert die Zeitachse, in die die Aufzeichnungsregel geschrieben werden soll, und muss ein gültiger Messwertname sein.
    • Geben Sie im Feld expr einen Ausdruck für die Aufzeichnungsregel ein:

      • Geben Sie für eine Systemprotokollierungsregel einen LogQL-Ausdruck (Log Query Language) ein.
      • Geben Sie für eine Systemüberwachungsregel einen PromQL-Ausdruck (Prometheus Query Language) ein.

      Dieser Ausdruck muss in einen numerischen Wert aufgelöst werden, damit er als neuer Messwert erfasst werden kann.

    • Optional: Definieren Sie im Feld labels die Labels, die Sie als Schlüssel/Wert-Paare hinzufügen oder überschreiben möchten.

  8. Geben Sie im Feld alertRules die folgenden Informationen ein, um Benachrichtigungsregeln zu konfigurieren:

    • Geben Sie im Feld alert den Namen der Benachrichtigung ein.
    • Geben Sie im Feld expr einen Ausdruck für die Benachrichtigungsregel ein:

      • Geben Sie für eine Systemprotokollierungsregel einen LogQL-Ausdruck ein.
      • Geben Sie für eine Systemüberwachungsregel einen PromQL-Ausdruck ein.

      Dieser Ausdruck muss als „true“ oder „false“ ausgewertet werden. Er bestimmt, ob der Hinweis in den Status „Ausstehend“ verschoben werden muss oder nicht.

    • Optional: Geben Sie im Feld for die Dauer in Sekunden ein, über die die angegebene Bedingung erfüllt sein muss, damit die Benachrichtigung vom Status „Ausstehend“ in den Status „Offen“ wechselt. Die Standarddauer, wenn Sie keinen anderen Wert angeben, beträgt 0 Sekunden.

    • Definieren Sie im Feld labels die Labels, die Sie als Schlüssel/Wert-Paare hinzufügen oder überschreiben möchten. Die folgenden Labels sind erforderlich:

      • severity: Wählen Sie den Schweregrad aus, z. B. error, critical, warning oder info.
      • code: Geben Sie den Benachrichtigungscode ein, um die Benachrichtigung zu identifizieren.
      • resource: Geben Sie einen Kurznamen zur Identifizierung der zugehörigen Ressource ein, z. B. AIS oder DHCP.
    • Optional: Fügen Sie im Feld annotations Anmerkungen als Schlüssel/Wert-Paare hinzu.

  9. Speichern Sie die YAML-Datei der benutzerdefinierten Ressource.

  10. Stellen Sie die benutzerdefinierte Ressource im Projekt-Namespace des Administratorclusters bereit, um die Benachrichtigungsregeln zu erstellen.

System-Logging- und Monitoring-Regeln über benutzerdefinierte Ressourcen konfigurieren

Dieser Abschnitt enthält die YAML-Vorlagen, die Sie zum Erstellen von Benachrichtigungsregeln durch Bereitstellen benutzerdefinierter Ressourcen verwenden müssen. Wenn Sie Benachrichtigungen über die GDC-Konsole erstellen, können Sie diesen Abschnitt überspringen.

Benutzerdefinierte MonitoringRule-Ressource

Wenn Sie Regeln für die Systemüberwachung erstellen möchten, müssen Sie eine benutzerdefinierte MonitoringRule-Ressource erstellen. Eine MonitoringRule besteht aus Aufzeichnungsregeln und Benachrichtigungsregeln, die die Bedingungen für das Senden einer Benachrichtigung beschreiben.

Die folgende YAML-Datei zeigt eine Vorlage der benutzerdefinierten Ressource MonitoringRule:

# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
  # Choose namespace that matches the project namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: PROJECT_NAMESPACE
  name: alerting-config
spec:
  # Rule evaluation interval
  interval: 60s

  # Configure limit for number of alerts (0: no limit)
  # Optional. Default: 0 (no limit)
  limit: 0

  # Configure recording rules to generate new metrics based on pre-existing metrics.
  # Recording rules precompute expressions that are frequently needed or computationally expensive.
  # These rules save their result as a new set of time series.
  recordRules:
    # Define which timeseries to write to. The value must be a valid metric name.
  - record: MyMetricsName

    # Define PromQL expression to evaluate for this rule
    expr: rate({service_name="bob-service"} [1m])

    # Define labels to add or overwrite
    # Optional. Map of key-value pairs
    labels:
      <label_key>: <label_value>

  # Configure alert rules
  alertRules:
    # Define alert name 
  - alert: <string>

    # Define PromQL expression to evaluate for this rule
    # https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
    expr: rate({service_name="bob-service"} [1m])

    # Define when an active alert moves from pending to open
    # Optional. Default: 0s
    for: 0s

    # Define labels to add or overwrite
    # Required, Map of key-value pairs
    # Required labels:
    #     severity: [error, critical, warning, info]
    #     code:
    #     resource: component/service/hardware related to the alert
    #     additional labels are optional
    labels:
      severity: error
      code: 202
      resource: AIS
      <label_key>: <label_value>

    # Define annotations to add
    # Optional. Map of key-value pairs
    # Recommended annotations:
    #     message: value of Message field in UI
    #     expression: value of Rule field in UI
    #     runbookurl: URL for link in Actions to take field in UI
    annotations:
      <label_key>: <label_value>

Ersetzen Sie PROJECT_NAMESPACE durch den Namespace Ihres Projekts.

Benutzerdefinierte LoggingRule-Ressource

Wenn Sie Regeln für die Systemprotokollierung erstellen möchten, müssen Sie eine benutzerdefinierte LoggingRule-Ressource erstellen. Eine LoggingRule besteht aus Aufzeichnungsregeln und Benachrichtigungsregeln, die die Bedingungen für das Senden einer Benachrichtigung beschreiben.

# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
  # Choose namespace that matches the project namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: PROJECT_NAMESPACE
  name: alerting-config
spec:
  # Choose which log source to base alerts on (Operational/Audit Logs)
  # Optional. Default: Operational
  source: operational

  # Rule evaluation interval
  interval: 60s

  # Configure limit for number of alerts (0: no limit)
  # Optional. Default: 0 (no limit)
  limit: 0

  # Configure recording rules to generate new metrics based on pre-existing logs.
  # Recording rules generate metrics based on logs.
  # Use recording rules for complex alerts, which query the same expression repeatedly every time they are evaluated.
  recordRules:
    # Define which timeseries to write to. The value must be a valid metric name.
  - record: MyMetricsName

    # Define LogQL expression to evaluate for this rule
    # https://grafana.com/docs/loki/latest/rules/
    expr: rate({service_name="bob-service"} [1m])

    # Define labels to add or overwrite
    # Optional. Map of key-value pairs
    labels:
      <label_key>: <label_value>

  # Configure alert rules
  alertRules:
    # Define alert name
  - alert: <string>

    # Define LogQL expression to evaluate for this rule
    expr: rate({service_name="bob-service"} [1m])

    # Define when an active alert moves from pending to open
    # Optional. Default: 0s
    for: 0s

    # Define labels to add or overwrite
    # Required, Map of key-value pairs
    # Required labels:
    #     severity: [error, critical, warning, info]
    #     code:
    #     resource: component/service/hardware related to alert
    #     additional labels are optional
    labels:
      severity: warning
      code: 202
      resource: AIS
      <label_name>: <label_value>

    # Define annotations to add
    # Optional. Map of key-value pairs
    # Recommended annotations:
    #     message: value of Message field in UI
    #     expression: value of Rule field in UI
    #     runbookurl: URL for link in Actions to take field in UI
    annotations:
      <label_name>: <label_value>

Ersetzen Sie PROJECT_NAMESPACE durch den Namespace Ihres Projekts.