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:
- Wählen Sie in der GDC Console ein Projekt aus.
- Klicken Sie im Navigationsmenü auf Vorgänge > Benachrichtigungen.
- Klicken Sie auf den Tab Benachrichtigungsrichtlinie.
- Klicken Sie auf Regelgruppe erstellen.
- 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.
- Geben Sie im Feld Name der Benachrichtigungsregelgruppe einen Namen für die Gruppe 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. Geben Sie
0
ein, um eine unbegrenzte Anzahl von Benachrichtigungen zu erhalten. - Klicken Sie im Bereich Benachrichtigungsregeln auf Benachrichtigungsregel erstellen.
- Geben Sie einen Namen für die Benachrichtigungsregel ein.
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.
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.Wählen Sie im Feld Schweregrad den Schweregrad aus, z. B. Fehler oder Warnung.
Geben Sie einen Kurznamen zur Identifizierung der zugehörigen Ressource ein, z. B.
AIS
oderDHCP
.Geben Sie einen Warnungscode ein, um die Warnung zu identifizieren.
Geben Sie eine Runbook-URL oder Informationen ein, die bei der Behebung des Problems helfen.
Geben Sie eine Nachricht oder Beschreibung für die Benachrichtigung ein.
Optional: Klicken Sie auf Label hinzufügen, um Labels als Schlüssel/Wert-Paare hinzuzufügen.
Optional: Klicken Sie auf Hinweis hinzufügen, um Hinweise als Schlüssel/Wert-Paare hinzuzufügen.
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.
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:
- Erstellen Sie eine YAML-Datei für die benutzerdefinierte Ressource. Verwenden Sie dazu die folgenden Vorlagen für Monitoring- oder Logging-Benachrichtigungsregeln:
- Wenn Sie Systemüberwachungsregeln erstellen und Benachrichtigungen auf Grundlage von Messwertdaten senden möchten, verwenden Sie die benutzerdefinierte Ressource
MonitoringRule
. - Wenn Sie Systemprotokollierungsregeln erstellen und Benachrichtigungen basierend auf Protokollierungsdaten senden möchten, verwenden Sie die benutzerdefinierte Ressource
LoggingRule
.
- Wenn Sie Systemüberwachungsregeln erstellen und Benachrichtigungen auf Grundlage von Messwertdaten senden möchten, verwenden Sie die benutzerdefinierte Ressource
- Geben Sie im Feld
namespace
der benutzerdefinierten Ressource Ihren Projekt-Namespace ein. - Geben Sie im Feld
name
einen Namen für die Konfiguration der Benachrichtigungsregel ein. - Optional: Wenn Sie die benutzerdefinierte Ressource
LoggingRule
für Logging-Regeln konfigurieren, können Sie im Feldsource
die Log-Quelle für Benachrichtigungen auswählen. Geben Sie beispielsweise einen Wert wieoperational
oderaudit
ein. - Geben Sie im Feld
interval
die Anzahl der Sekunden für die Dauer des Intervalls für die Regelauswertung ein. - Optional: Geben Sie im Feld
limit
die maximale Anzahl von Benachrichtigungen ein. Geben Sie0
ein, wenn Sie eine unbegrenzte Anzahl von Benachrichtigungen erhalten möchten. 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.
- Geben Sie im Feld
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ägt0
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
oderinfo
.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
oderDHCP
.
Optional: Fügen Sie im Feld
annotations
Anmerkungen als Schlüssel/Wert-Paare hinzu.
- Geben Sie im Feld
Speichern Sie die YAML-Datei der benutzerdefinierten Ressource.
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.