Auf dieser Seite wird beschrieben, wie Sie Benachrichtigungsregeln auf Grundlage von Logs und Messwerten aus Google Distributed Cloud-Umgebungen (GDC) ohne Internetverbindung erstellen, um proaktives Monitoring und eine schnellere Reaktion auf Vorfälle zu ermöglichen.
Mit GDC können Sie Benachrichtigungsregeln basierend auf den Messwerten 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: Benachrichtigungen werden basierend auf numerischen Daten ausgelöst, die aus Ihren Anwendungen oder Ihrer Infrastruktur erfasst werden. Sie können beispielsweise eine Regel erstellen, die eine Benachrichtigung auslöst, wenn die CPU-Auslastung 80 % überschreitet. Erstellen Sie messwertbasierte Regeln mit der GDC-Konsole oder einer benutzerdefinierten Ressourcendefinition
MonitoringRule
. - Logbasierte Regeln: Benachrichtigungen werden basierend auf der Analyse von Logdaten ausgelöst. Mit diesen Benachrichtigungen können Sie bestimmte Ereignisse oder Muster in Ihren Protokollen erkennen und darauf reagieren, z. B. Fehlermeldungen oder ungewöhnliche Aktivitäten. Erstellen Sie logbasierte Regeln mit der GDC-Konsole oder einer benutzerdefinierten Ressourcendefinition
LoggingRule
.
Sowohl messwertbasierte als auch logbasierte Regeln basieren auf einem Abfragesprachenausdruck, um die Bedingung zu definieren, die eine Benachrichtigung auslöst. Mit diesem Ausdruck werden die eingehenden Daten gefiltert und analysiert, um festzustellen, ob die definierten Kriterien erfüllt sind.
Wenn eine Bedingung zum ersten Mal erfüllt wird, wechselt die Benachrichtigung in den Status Ausstehend. Wenn die Bedingungen über den von Ihnen festgelegten Zeitraum erfüllt sind, wechselt die Benachrichtigung in den Status Offen. In diesem Moment sendet das System die Benachrichtigung.
Um zusätzlichen Kontext bereitzustellen und die effiziente Verwaltung von Benachrichtigungen zu erleichtern, können Sie Ihren Benachrichtigungsregeln Labels und Annotationen 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: Geben Sie zusätzliche nicht identifizierbare Informationen an, 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
Hinweise
Wenn Sie die Berechtigungen zum Verwalten messwertbasierter Regeln benötigen, bitten Sie Ihren IAM-Administrator der Organisation oder Ihren IAM-Administrator des Projekts, Ihnen eine der zugehörigen MonitoringRule
-Ressourcenrollen zuzuweisen.
Wenn Sie hingegen die Berechtigungen zum Verwalten logbasierter Regeln benötigen, bitten Sie Ihren IAM-Administrator für die Organisation oder den IAM-Administrator für das Projekt, Ihnen eine der zugehörigen LoggingRule
-Ressourcenrollen zuzuweisen.
Je nach erforderlicher Zugriffsebene und Berechtigungen können Sie für diese Ressourcen in einer Organisation oder einem Projekt die Rollen „Ersteller“, „Bearbeiter“ oder „Betrachter“ erhalten. Weitere Informationen finden Sie unter IAM-Berechtigungen vorbereiten.
Regeln für Benachrichtigungen definieren
Sie können Benachrichtigungsregeln in Ihrem Projekt-Namespace entweder über die GDC-Konsole (bevorzugt) oder über die Monitoring- und Logging-APIs definieren, um benutzerdefinierte Ressourcen anzuwenden.
Wählen Sie eine der folgenden Methoden aus, um Benachrichtigungsregeln basierend auf Messwerten oder Protokollen zu definieren:
Console
So erstellen Sie Benachrichtigungsregeln in Regelgruppen über die GDC-Konsole:
- 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 Regelbewertungsintervall 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 ein Hinweis von pending zu open wechselt.
Der Schweregrad, 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 Benachrichtigung oder Beschreibung.
Optional: Fügen Sie Labels und Annotations 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 Regelgruppe für Benachrichtigungen angezeigt. Sie können weitere Benachrichtigungsregeln in dieser Regelgruppe gruppieren.
API
Benachrichtigungsregeln über die Monitoring- oder Logging-APIs erstellen:
Definieren Sie eine benutzerdefinierte Ressource vom Typ
MonitoringRule
(regelbasiert auf Messwerten) oderLoggingRule
(regelbasiert auf Logs) 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 namespace
Der Projekt-Namespace. name
Der Name für die Konfiguration der Benachrichtigungsregel. source
Die Logquelle für die Benachrichtigungsregel. Gültige Optionen sind operational
undaudit
. Gilt nur fürLoggingRule
-Ressourcen.interval
Die Dauer des Intervalls für die Regelauswertung in Sekunden. limit
Optional: Die maximale Anzahl an Benachrichtigungen. Legen Sie diese Option auf 0
fest, um unbegrenzt viele Benachrichtigungen zu erhalten.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 ein Hinweis von pending zu open wechselt. Der Standardwert ist 0
Sekunden (sofortige Auslösung).alertRules.labels
Schlüssel/Wert-Paare zum Kategorisieren und Identifizieren der Benachrichtigung. Dafür sind die folgenden Labels erforderlich: severity
,code
undresource
.alertRules.annotations
Optional: 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 messwert- 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 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-Konsole erstellen, können Sie diesen Abschnitt überspringen.
Sie können Benachrichtigungsregeln in den folgenden benutzerdefinierten Ressourcen definieren:
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 Projekt-Namespace.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 Projekt-Namespace.LOGGING_RULE_NAME
: der Name derLoggingRule
-Definitionsdatei.