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:
- Wählen Sie in der GDC Console ein Projekt aus.
- Wählen Sie im Navigationsmenü Vorgänge > Benachrichtigungen aus.
- Klicken Sie auf den Tab Benachrichtigungsrichtlinie.
- Klicken Sie auf Regelgruppe erstellen.
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.
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.
Klicken Sie im Bereich Benachrichtigungsregeln auf Regel hinzufügen.
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.
Klicken Sie auf Speichern , um die Regel zu erstellen.
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:
Definieren Sie eine benutzerdefinierte Ressource
MonitoringRule(messwertbasierte Regeln) oderLoggingRule(logbasierte Regeln) in einer YAML-Datei.Die vollständige Ressourcenspezifikation enthält ein Beispiel für messwertbasierte und logbasierte Regeln.
Ersetzen Sie die folgenden Werte in der YAML-Datei nach Bedarf:
Feld Beschreibung namespaceDer Namespace des Projekts. nameDer Name für die Konfiguration der Benachrichtigungsregel. sourceDie Protokollquelle für die Benachrichtigungsregel. Gültige Optionen sind operationalundaudit. Gilt nur fürLoggingRule-Ressourcen.intervalDie Dauer des Intervalls für die Regelauswertung in Sekunden. limitOptional. Die maximale Anzahl von Benachrichtigungen. Setzen Sie den Wert auf 0für eine unbegrenzte Anzahl von Benachrichtigungen.alertRulesDie Definitionen zum Erstellen von Benachrichtigungsregeln. alertRules.alertDer Name der Benachrichtigung. alertRules.exprEin 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.forOptional. Die Dauer in Sekunden, bevor eine Benachrichtigung von ausstehend zu offen wechselt. Standardmäßig ist 0Sekunden festgelegt (sofortige Auslösung).alertRules.labelsSchlüssel/Wert-Paare zum Kategorisieren und Identifizieren der Benachrichtigung. Es sind die folgenden Labels erforderlich: severity,code, undresource.alertRules.annotationsOptional. Nicht identifizierende Metadaten für die Benachrichtigung als Schlüssel/Wert-Paare. Speichern Sie die YAML-Datei.
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.yamlErsetzen Sie Folgendes:
KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei für den Management API-Server.ALERT_RULE_NAME: der Name der DefinitionsdateiMonitoringRuleoderLoggingRule.
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 DefinitionsdateiMonitoringRule.
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 DefinitionsdateiLoggingRule.