Benachrichtigungsregeln erstellen

Auf dieser Seite wird der Prozess zum Erstellen von Benachrichtigungsregeln auf Grundlage von Logs und Messwerten aus Google Distributed Cloud (GDC)-Umgebungen mit Air Gap beschrieben, um proaktives Monitoring und eine schnellere Incident Response zu ermöglichen.

Mit GDC können Sie Benachrichtigungsregeln auf Grundlage der Messwerte oder Logs Ihres Projekts definieren. Diese Regeln lösen automatisch Benachrichtigungen aus, wenn bestimmte Bedingungen erfüllt sind. Sie können die folgenden Arten von Benachrichtigungsregeln definieren:

  • Messwertbasierte Regeln: Lösen Benachrichtigungen auf Grundlage von numerischen Daten aus, die von Ihren Anwendungen oder Ihrer Infrastruktur erfasst wurden. Sie können beispielsweise eine Regel erstellen, um eine Benachrichtigung auszulösen, wenn die CPU-Auslastung 80 % übersteigt. Erstellen Sie messwertbasierte Regeln mit der GDC Console oder einer benutzerdefinierten Ressourcendefinition MonitoringRule.
  • Logbasierte Regeln: Lösen Benachrichtigungen auf Grundlage der Analyse von Logdaten aus. Mit diesen Benachrichtigungen können Sie bestimmte Ereignisse oder Muster in Ihren Logs identifizieren und darauf reagieren, z. B. Fehlermeldungen oder ungewöhnliche Aktivitäten. Erstellen Sie logbasierte Regeln mit der GDC Console oder einer benutzerdefinierten Ressourcendefinition LoggingRule.

Sowohl messwertbasierte als auch logbasierte Regeln verwenden einen Ausdruck in einer Abfragesprache, um die Bedingung zu definieren, die eine Benachrichtigung auslöst. Dieser Ausdruck filtert und analysiert die eingehenden Daten und prüft, ob die definierten Kriterien erfüllt sind.

Wenn eine Bedingung zum ersten Mal erfüllt ist, wechselt die Benachrichtigung in den Status ausstehend. Wenn die Bedingungen über den von Ihnen definierten Zeitraum hinweg erfüllt sind, wechselt die Benachrichtigung in den Status offen. In diesem Moment sendet das System die Benachrichtigung.

Um weiteren Kontext bereitzustellen und die effiziente Verwaltung von Benachrichtigungen zu erleichtern, können Sie Ihren Benachrichtigungsregeln Labels und Anmerkungen hinzufügen:

  • Labels: Schlüssel/Wert-Paare, mit denen Benachrichtigungen kategorisiert und identifiziert werden. Verwenden Sie Labels für Informationen wie die folgenden:

    • Schweregrad (Fehler, kritisch, Warnung)
    • Benachrichtigungscode
    • Ressourcenname
  • Anmerkungen: Stellen Sie zusätzliche nicht personenidentifizierbare Informationen bereit, um die Benachrichtigung zu ergänzen. Anmerkungen können die folgenden Informationen enthalten:

    • Detaillierte Fehlermeldungen
    • Relevante Ausdrücke
    • Links zu Runbooks oder Anleitungen zur Fehlerbehebung

Hinweis

Bitten Sie Ihren IAM-Administrator der Organisation oder Ihren IAM-Administrator des Projekts, Ihnen eine der zugehörigen MonitoringRule Ressourcenrollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten messwertbasierter Regeln benötigen.

Bitten Sie Ihren IAM-Administrator der Organisation oder Ihren IAM-Administrator des Projekts, Ihnen eine der zugehörigen LoggingRule Ressourcenrollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten logbasierter Regeln benötigen.

Je nach Zugriffsebene und erforderlichen Berechtigungen können Sie Ersteller-, Bearbeiter- oder Betrachterrollen für diese Ressourcen in einer Organisation oder einem Projekt erhalten. Weitere Informationen finden Sie unter IAM-Berechtigungen vorbereiten.

Benachrichtigungsregeln definieren

Sie können Benachrichtigungsregeln im Namespace Ihres Projekts entweder über die GDC Console (empfohlen) oder die Monitoring- und Logging-APIs definieren, um benutzerdefinierte Ressourcen anzuwenden.

Wählen Sie eine der folgenden Methoden aus, um Benachrichtigungsregeln auf Grundlage von Messwerten oder Logs zu definieren:

Console

Erstellen Sie Benachrichtigungsregeln in Regelgruppen über die GDC Console:

  1. Wählen Sie in der GDC Console ein Projekt aus.
  2. Wählen Sie im Navigationsmenü Vorgänge > Benachrichtigungen aus.
  3. Klicken Sie auf den Tab Benachrichtigungsrichtlinie.
  4. Klicken Sie auf Regelgruppe erstellen.
  5. Wählen Sie den Typ der Benachrichtigungsregel aus:

    • Wählen Sie Messwerte für Benachrichtigungsregeln auf Grundlage von Messwerten aus.
    • Wählen Sie Logs für Benachrichtigungsregeln auf Grundlage von Logs aus.
  6. Konfigurieren Sie die Benachrichtigungsregelgruppe:

    • Geben Sie im Feld Name der Benachrichtigungsregelgruppe einen Namen für die Regelgruppe ein.
    • Geben Sie im Feld Intervall für die Regelauswertung die Anzahl der Sekunden für jedes Intervall ein.
    • Geben Sie im Feld Limit die maximale Anzahl von Benachrichtigungen ein.

  7. Klicken Sie im Bereich Benachrichtigungsregeln auf Regel hinzufügen.

  8. Geben Sie im Fenster Benachrichtigungsregel erstellen die folgenden Details ein:

    • Einen Namen für die Benachrichtigungsregel.
    • Einen Ausdruck für die Benachrichtigungsregel (verwenden Sie LogQL für logbasierte Regeln und PromQL für messwertbasierte Regeln).

    • Die Dauer in Sekunden, bevor eine Benachrichtigung von ausstehend zu offen wechselt.

    • Den Schweregrad, z. B. Fehler oder Warnung.

    • Einen kurzen Namen zur Identifizierung der zugehörigen Ressource.

    • Einen Benachrichtigungscode zur Identifizierung der Benachrichtigung.

    • Eine Runbook-URL oder Informationen zur Fehlerbehebung.

    • Eine Benachrichtigung oder Beschreibung.

    • Optional: Fügen Sie Labels und Anmerkungen als Schlüssel/Wert-Paare hinzu.

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

  10. Klicken Sie auf Erstellen , um die Regelgruppe zu erstellen.

Die Regelgruppe wird in der Liste Benachrichtigungsregelgruppe angezeigt. Sie können dieser Regelgruppe weitere Benachrichtigungsregeln hinzufügen.

API

Erstellen Sie Benachrichtigungsregeln über die Monitoring- oder Logging-APIs:

  1. Definieren Sie eine benutzerdefinierte Ressource MonitoringRule (messwertbasierte Regeln) oder LoggingRule (logbasierte Regeln) in einer YAML-Datei.

    Die vollständige Ressourcenspezifikation enthält ein Beispiel für messwertbasierte und logbasierte Regeln.

  2. Ersetzen Sie die folgenden Werte in der YAML-Datei nach Bedarf:

    Feld Beschreibung
    namespace Der Namespace des Projekts.
    name Der Name für die Konfiguration der Benachrichtigungsregel.
    source Die Protokollquelle für die Benachrichtigungsregel. Gültige Optionen sind operational und audit. Gilt nur für LoggingRule-Ressourcen.
    interval Die Dauer des Intervalls für die Regelauswertung in Sekunden.
    limit Optional. Die maximale Anzahl von Benachrichtigungen. Setzen Sie den Wert auf 0 für eine unbegrenzte Anzahl von Benachrichtigungen.
    alertRules Die Definitionen zum Erstellen von Benachrichtigungsregeln.
    alertRules.alert Der Name der Benachrichtigung.
    alertRules.expr Ein LogQL-Ausdruck für logbasierte Regeln oder ein PromQL-Ausdruck für messwertbasierte Regeln. Der Ausdruck muss als „true“ oder „false“ ausgewertet werden, um zu bestimmen, ob die Benachrichtigung in den Status „ausstehend“ wechselt.
    alertRules.for Optional. Die Dauer in Sekunden, bevor eine Benachrichtigung von ausstehend zu offen wechselt. Standardmäßig ist 0 Sekunden festgelegt (sofortige Auslösung).
    alertRules.labels Schlüssel/Wert-Paare zum Kategorisieren und Identifizieren der Benachrichtigung. Es sind die folgenden Labels erforderlich: severity, code, und resource.
    alertRules.annotations Optional. Nicht identifizierende Metadaten für die Benachrichtigung als Schlüssel/Wert-Paare.
  3. Speichern Sie die YAML-Datei.

  4. Wenden Sie die Ressourcenkonfiguration auf den Management API-Server im selben Namespace wie Ihre messwertbasierten oder logbasierten Benachrichtigungsregeln an:

    kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yaml
    

    Ersetzen Sie Folgendes:

    • KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei für den Management API-Server.
    • ALERT_RULE_NAME: der Name der Definitionsdatei MonitoringRule oder LoggingRule.

Vollständige Ressourcenspezifikation

Dieser Abschnitt enthält die YAML-Vorlagen, mit denen Sie messwertbasierte und logbasierte Benachrichtigungsregeln erstellen können, indem Sie benutzerdefinierte Ressourcen anwenden. Wenn Sie Benachrichtigungen über die GDC Console erstellen, können Sie diesen Abschnitt überspringen.

Definieren Sie Benachrichtigungsregeln in den folgenden benutzerdefinierten Ressourcen:

  • MonitoringRule: messwertbasierte Regeln.
  • LoggingRule: logbasierte Regeln.

MonitoringRule

Die folgende YAML-Datei zeigt eine Vorlage für die benutzerdefinierte Ressource MonitoringRule. Weitere Informationen finden Sie in der API-Referenzdokumentation.

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

  # Configure the limit for the number of alerts.
  # A value of '0' means no limit.
  # Optional.
  # Default value: '0'
  limit: 0

  # Configure metric-based alert rules.
  alertRules:
    # Define an alert name.
  - alert: my-metric-based-alert

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

    # The duration in seconds before an alert transitions from pending to open.
    # Optional.
    # Default value: '0s'
    for: 0s

    # Define labels to add or overwrite.
    # 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
      another-label: another-value

    # Define annotations to add.
    # Map of key-value pairs.
    # Optional.
    # Recommended annotations:
    #     message: value of the Message field in the user interface.
    #     expression: value of the Rule field in the user interface.
    #     runbookurl: URL of the Actions to take field in the user interface.
    annotations:
      message: my-alert-message

Ersetzen Sie Folgendes:

  • PROJECT_NAMESPACE: der Namespace Ihres Projekts.
  • MONITORING_RULE_NAME: der Name der Definitionsdatei MonitoringRule.

LoggingRule

Die folgende YAML-Datei zeigt eine Vorlage für die benutzerdefinierte Ressource LoggingRule. Weitere Informationen finden Sie in der API-Referenzdokumentation.

# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
  # Choose a namespace that matches the project namespace.
  # The alert or record is produced in the same namespace.
  namespace: PROJECT_NAMESPACE
  name: LOGGING_RULE_NAME
spec:
  # Choose the log source to base alerts on (operational or audit logs).
  # Optional.
  # Valid options: 'operational' and 'audit'
  # Default value: 'operational'
  source: operational

  # Rule evaluation interval.
  interval: 60s

  # Configure the limit for the number of alerts.
  # A value of '0' means no limit.
  # Optional.
  # Default value: '0'
  limit: 0

  # Configure log-based alert rules.
  alertRules:
    # Define an alert name.
  - alert: my-log-based-alert

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

    # The duration in seconds before an alert transitions from pending to open.
    # Optional.
    # Default value: '0s'
    for: 0s

    # Define labels to add or overwrite.
    # 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: warning
      code: 202
      resource: AIS
      another-label: another-value

    # Define annotations to add.
    # Map of key-value pairs.
    # Optional.
    # Recommended annotations:
    #     message: value of the Message field in the user interface.
    #     expression: value of the Rule field in the user interface.
    #     runbookurl: URL of the Actions to take field in the user interface.
    annotations:
      message: my-alert-message

Ersetzen Sie Folgendes:

  • PROJECT_NAMESPACE: der Namespace Ihres Projekts.
  • LOGGING_RULE_NAME: der Name der Definitionsdatei LoggingRule.