Auf dieser Seite wird der Prozess zum Erstellen von Benachrichtigungsregeln auf der Grundlage von Logs und Messwerten aus Google Distributed Cloud (GDC)-Umgebungen mit Air-Gap-Appliance beschrieben, um proaktives Monitoring und eine schnellere Incident Response zu ermöglichen.
Mit GDC können Sie Benachrichtigungsregeln auf der 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 der Grundlage von numerischen Daten aus, die von
Ihren Anwendungen oder Ihrer Infrastruktur erfasst werden. Sie können beispielsweise eine Regel erstellen, um eine Benachrichtigung auszulösen, wenn die CPU-Auslastung 80 % überschreitet. Erstellen Sie messwertbasierte Regeln mit der GDC Console oder einer benutzerdefinierten Ressourcendefinition
MonitoringRule. - Logbasierte Regeln: Lösen Benachrichtigungen auf der 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 basieren auf einem 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 folgenden 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, die Benachrichtigungen kategorisieren und identifizieren. Verwenden Sie Labels für Informationen wie die folgenden:
- Wichtigkeitsstufe (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
Zum Verwalten von messwertbasierten oder logbasierten Regeln benötigen Sie die erforderlichen Berechtigungen.
### IAM-Organisationsrollen für messwertbasierte Regeln anfordern
Wenden Sie sich an Ihren IAM-Administrator der Organisation, um die folgenden Rollen anzufordern:
- MonitoringRule PA Creator (
monitoringrule-pa-creator): Erstellen Sie benutzerdefinierteMonitoringRule-Ressourcen. - MonitoringRule PA Editor (
monitoringrule-pa-editor): Bearbeiten oder löschen Sie benutzerdefinierteMonitoringRule-Ressourcen. MonitoringRule PA Viewer (
monitoringrule-pa-viewer): Sehen Sie sich benutzerdefinierteMonitoringRule-Ressourcen an.IAM-Projektrollen für messwertbasierte Regeln anfordern
Wenden Sie sich an Ihren IAM-Administrator des Projekts, um die folgenden Rollen anzufordern:
- MonitoringRule Editor (
monitoringrule-editor): Bearbeiten oder löschen Sie benutzerdefinierteMonitoringRule-Ressourcen im Projektnamespace. - MonitoringRule Viewer (
monitoringrule-viewer): Sehen Sie sich benutzerdefinierteMonitoringRule-Ressourcen im Projektnamespace an.
IAM-Organisationsrollen für logbasierte Regeln anfordern
Wenden Sie sich an Ihren IAM-Administrator der Organisation, um die folgenden Rollen anzufordern:
- LoggingRule PA Creator (
loggingrule-pa-creator): Erstellen Sie benutzerdefinierteLoggingRule-Ressourcen. - LoggingRule PA Editor (
loggingrule-pa-editor): Bearbeiten oder löschen Sie benutzerdefinierteLoggingRule-Ressourcen. - LoggingRule PA Viewer (
loggingrule-pa-viewer): Sehen Sie sich benutzerdefinierteLoggingRule-Ressourcen an.
IAM-Projektrollen für logbasierte Regeln anfordern
Wenden Sie sich an Ihren IAM-Administrator des Projekts, um die folgenden Rollen anzufordern:
- LoggingRule Editor (
loggingrule-editor): Bearbeiten oder löschen Sie benutzerdefinierteLoggingRule-Ressourcen im Projektnamespace. - LoggingRule Viewer (
loggingrule-viewer): Sehen Sie sich benutzerdefinierteLoggingRule-Ressourcen im Projektnamespace an.
Benachrichtigungsregeln definieren
Sie können Benachrichtigungsregeln in Ihrem Projektnamespace entweder über die GDC Console (bevorzugt) oder die Monitoring- und Logging-APIs definieren, um benutzerdefinierte Ressourcen anzuwenden.
Wählen Sie eine der folgenden Methoden aus, um Benachrichtigungsregeln auf der 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 aus, die auf Messwerten basieren.
- Wählen Sie Logs für Benachrichtigungsregeln aus, die auf Logs basieren.
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:
- Ein Name für die Benachrichtigungsregel.
Ein 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.
Die Wichtigkeitsstufe, z. B. Fehler oder Warnung.
Ein kurzer Name zur Identifizierung der zugehörigen Ressource.
Ein Benachrichtigungscode zur Identifizierung der Benachrichtigung.
Eine Runbook-URL oder Informationen zur Fehlerbehebung.
Eine Benachrichtigungsnachricht 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 Projektnamespace. 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“ versetzt wird. alertRules.forOptional. Die Dauer in Sekunden, bevor eine Benachrichtigung von ausstehend zu offen wechselt. Standardmäßig 0Sekunden (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 derMonitoringRule- oderLoggingRule-Definitionsdatei.
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: Ihr Projektnamespace.MONITORING_RULE_NAME: der Name derMonitoringRule-Definitionsdatei.
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: Ihr Projektnamespace.LOGGING_RULE_NAME: der Name derLoggingRule-Definitionsdatei.