Questa pagina descrive la procedura per creare regole di avviso basate su log e metriche degli ambienti air-gap di Google Distributed Cloud (GDC) per facilitare il monitoraggio proattivo e una risposta più rapida agli incidenti.
GDC ti consente di definire regole di avviso in base alle metriche o ai log del tuo progetto. Queste regole attivano automaticamente gli avvisi quando vengono soddisfatte condizioni specifiche. Di seguito sono riportati i tipi di regole di avviso che puoi definire:
- Regole basate su metriche: attivano avvisi in base ai dati numerici raccolti dalle applicazioni o dall'infrastruttura. Ad esempio, puoi creare una regola per
attivare un avviso se l'utilizzo della CPU supera l'80%. Crea regole basate su metriche utilizzando la console GDC o una definizione di risorsa personalizzata
MonitoringRule
. - Regole basate sui log: attivano avvisi in base all'analisi dei dati dei log. Questi
avvisi ti consentono di identificare e rispondere a eventi o pattern specifici all'interno dei
log, ad esempio messaggi di errore o attività insolite. Crea regole basate sui log utilizzando
la console GDC o una definizione di risorsa personalizzata
LoggingRule
.
Sia le regole basate su metriche sia quelle basate su log si basano su un'espressione del linguaggio di query per definire la condizione che attiva un avviso. Questa espressione filtra e analizza i dati in arrivo, valutando se i criteri definiti sono soddisfatti.
La prima volta che viene soddisfatta una condizione, l'avviso passa allo stato In attesa. Se le condizioni sono vere per il periodo di durata che definisci, l'avviso passa allo stato aperto. In quel momento, il sistema invia l'avviso.
Per fornire ulteriore contesto e facilitare la gestione efficiente degli avvisi, puoi aggiungere etichette e annotazioni alle regole di avviso:
Etichette: coppie chiave-valore che classificano e identificano gli avvisi. Utilizza le etichette per informazioni come le seguenti:
- Livello di gravità (errore, critico, avviso)
- Codice avviso
- Nome risorsa
Annotazioni: fornisci ulteriori informazioni non identificative per arricchire l'avviso. Le annotazioni possono includere le seguenti informazioni:
- Messaggi di errore dettagliati
- Espressioni pertinenti
- Link a runbook o guide per la risoluzione dei problemi
Prima di iniziare
Per ottenere le autorizzazioni necessarie per gestire le regole basate su metriche, chiedi all'amministratore IAM dell'organizzazione o all'amministratore IAM del progetto di concederti uno dei ruoli risorsa MonitoringRule
associati.
D'altra parte, per ottenere le autorizzazioni necessarie per gestire le regole basate sui log, chiedi all'amministratore IAM dell'organizzazione o del progetto di concederti uno dei ruoli risorsa LoggingRule
associati.
A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere i ruoli di creatore, editor o visualizzatore per queste risorse in un'organizzazione o in un progetto. Per maggiori informazioni, vedi Preparare le autorizzazioni IAM.
Definisci le regole di avviso
Puoi definire regole di avviso nello spazio dei nomi del progetto utilizzando la console GDC (scelta consigliata) o le API Monitoring e Logging per applicare risorse personalizzate.
Seleziona uno dei seguenti metodi per definire regole di avviso basate su metriche o log:
Console
Crea regole di avviso nei gruppi di regole dalla console GDC:
- Nella console GDC, seleziona un progetto.
- Nel menu di navigazione, seleziona Operazioni > Avvisi.
- Fai clic sulla scheda Policy di avviso.
- Fai clic su Crea gruppo di regole.
Scegli il tipo di regola di avviso:
- Seleziona Metriche per le regole di avviso basate sulle metriche.
- Seleziona Log per le regole di avviso basate sui log.
Configura il gruppo di regole di avviso:
- Nel campo Nome gruppo di regole di avviso, inserisci un nome per il gruppo di regole.
- Nel campo Intervallo di valutazione delle regole, inserisci il numero di secondi per ogni intervallo.
Nel campo Limite, inserisci il numero massimo di avvisi.
Nella sezione Regole di avviso, fai clic su
Aggiungi regola.Nella finestra Crea regola avviso, inserisci i seguenti dettagli:
- Un nome per la regola di avviso.
Un'espressione per la regola di avviso (utilizza LogQL per le regole basate su log e PromQL per le regole basate su metriche).
La durata in secondi prima che un avviso passi da pending a open.
Il livello di gravità, ad esempio Errore o Avviso.
Un nome breve per identificare la risorsa correlata.
Un codice di avviso per identificare l'avviso.
Un URL runbook o informazioni per la risoluzione dei problemi.
Un messaggio di avviso o una descrizione.
(Facoltativo) Aggiungi Etichette e Annotazioni come coppie chiave-valore.
Fai clic su Salva per creare la regola.
Fai clic su Crea per creare il gruppo di regole.
Il gruppo di regole viene visualizzato nell'elenco Gruppo di regole di avviso. Puoi raggruppare altre regole di avviso all'interno di questo gruppo di regole.
API
Crea regole di avviso dalle API Monitoring o Logging:
Definisci una risorsa personalizzata
MonitoringRule
(regole basate sulle metriche) oLoggingRule
(regole basate sui log) in un file YAML.La specifica completa della risorsa mostra un esempio per regole basate su metriche e log.
Sostituisci i seguenti valori nel file YAML in base alle tue esigenze:
Campo Descrizione namespace
Lo spazio dei nomi del progetto. name
Il nome della configurazione della regola di avviso. source
L'origine log per la regola di avviso. Le opzioni valide sono operational
eaudit
. Il problema riguarda solo le risorseLoggingRule
.interval
La durata dell'intervallo di valutazione delle regole in secondi. limit
(Facoltativo) Il numero massimo di avvisi. Imposta questo valore su 0
per avvisi illimitati.alertRules
Le definizioni per la creazione di regole di avviso. alertRules.alert
Il nome dell'avviso. alertRules.expr
Un'espressione LogQL per le regole basate su log o un'espressione PromQL per le regole basate su metriche. L'espressione deve restituire un valore true o false per determinare se l'avviso passa a uno stato in attesa. alertRules.for
(Facoltativo) La durata in secondi prima che un avviso passi da pending a open. Il valore predefinito è 0
secondi (attivazione immediata).alertRules.labels
Coppie chiave-valore per classificare e identificare l'avviso. Richiede le seguenti etichette: severity
,code
eresource
.alertRules.annotations
(Facoltativo) Metadati non identificativi dell'avviso come coppie chiave-valore. Salva il file YAML.
Applica la configurazione delle risorse al server API Management nello stesso spazio dei nomi delle regole di avviso basate su metriche o log:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yaml
Sostituisci quanto segue:
KUBECONFIG_PATH
: il percorso del file kubeconfig per il server dell'API di gestione.ALERT_RULE_NAME
: il nome del file di definizioneMonitoringRule
oLoggingRule
.
Specifiche complete delle risorse
Questa sezione contiene i modelli YAML che puoi utilizzare per creare regole di avviso basate su metriche e basate sui log applicando risorse personalizzate. Se crei avvisi dalla console GDC, puoi saltare questa sezione.
Definisci le regole di avviso nelle seguenti risorse personalizzate:
MonitoringRule
: regole basate su metriche.LoggingRule
: regole basate sui log.
MonitoringRule
Il seguente file YAML mostra un modello per la risorsa personalizzata MonitoringRule
. Per saperne di più, consulta la documentazione di riferimento dell'API.
# 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
Sostituisci quanto segue:
PROJECT_NAMESPACE
: lo spazio dei nomi del progetto.MONITORING_RULE_NAME
: il nome del file di definizioneMonitoringRule
.
LoggingRule
Il seguente file YAML mostra un modello per la risorsa personalizzata LoggingRule
. Per saperne di più, consulta la documentazione di riferimento dell'API.
# 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
Sostituisci quanto segue:
PROJECT_NAMESPACE
: lo spazio dei nomi del progetto.LOGGING_RULE_NAME
: il nome del file di definizioneLoggingRule
.