Dopo aver creato regole di avviso nel progetto dell'appliance air-gapped Google Distributed Cloud (GDC), puoi interrogare e visualizzare gli avvisi nei dashboard dall'interfaccia utente dell'istanza di monitoraggio del sistema del progetto o interrogare gli avvisi dall'API HTTP GDC Observability.
Esegui query e visualizza gli avvisi nelle dashboard
Puoi visualizzare gli avvisi nelle dashboard dall'istanza Grafana del progetto platform-obs
, chiamata anche istanza di monitoraggio del sistema.
istanza di monitoraggio del sistema del progetto platform-obs
.
L'istanza di monitoraggio del sistema include metriche, log e avvisi a livello di progetto per eseguire processi di monitoraggio come il monitoraggio della rete e del server.
Prima di iniziare
Prima di eseguire query e visualizzare gli avvisi nelle dashboard, devi ottenere l'accesso all'istanza di monitoraggio del sistema. Per saperne di più, vedi Accedere alle dashboard.
Per accedere e visualizzare gli avvisi, chiedi all'amministratore IAM del progetto di concederti il ruolo Visualizzatore Grafana progetto (project-grafana-viewer
). Questo processo di controllo dell'accesso basato sui ruoli ti consente di accedere alle visualizzazioni dei dati in modo sicuro.
Endpoint dell'istanza di monitoraggio del sistema
Per l'operatore dell'applicazione (AO):
Apri il seguente URL per accedere all'endpoint del tuo progetto:
https://GDC_URL/PROJECT_NAMESPACE/grafana
Sostituisci quanto segue:
- GDC_URL: l'URL della tua organizzazione in GDC.
- PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
La UI del progetto contiene dashboard predefinite, ad esempio la dashboard Avvisi - Panoramica con informazioni sugli avvisi. L'interrogazione degli avvisi dalla UI consente di recuperare visivamente le informazioni sugli avvisi dal progetto e di ottenere una visualizzazione integrata delle risorse per la consapevolezza e la rapida risoluzione dei problemi.
Per l'amministratore della piattaforma:
Apri il seguente URL per accedere all'endpoint del tuo progetto platform-obs
:
https://GDC_URL/platform-obs/grafana
Sostituisci GDC_URL con l'URL della tua organizzazione in GDC.
L'interfaccia utente (UI) dell'istanza di monitoraggio del sistema contiene dashboard predefinite come la dashboard Avvisi - Panoramica con informazioni sugli avvisi per l'osservabilità dei dati. L'interrogazione degli avvisi dalla UI consente di recuperare visivamente le informazioni sugli avvisi dal progetto e di ottenere una visualizzazione integrata delle risorse per la consapevolezza e la rapida risoluzione dei problemi.
Figura 1. La dashboard Avvisi - Panoramica nell'interfaccia utente di Grafana.
Alertmanager
Alertmanager ti consente di monitorare le notifiche di avviso dalle applicazioni client. Puoi ispezionare e silenziare gli avvisi utilizzando Alertmanager e filtrare o raggruppare gli avvisi:
Figura 2. Opzione di menu per eseguire query sui log di controllo da Alertmanager.
Policy di avviso predefinite
La tabella seguente elenca le regole di avviso preinstallate in Prometheus:
Nome | Descrizione |
---|---|
KubeAPIDown (critico) | KubeAPI è scomparso dal rilevamento dei target di Prometheus per 15 minuti. |
KubeClientErrors (avviso) | Il rapporto tra errori client del server API di Kubernetes è > 0,01 per 15 minuti. |
KubeClientErrors (critico) | Rapporto errori client del server API Kubernetes > 0,1 per 15 minuti. |
KubePodCrashLooping (avviso) | Il pod è in uno stato di loop di arresto anomalo da più di 15 minuti. |
KubePodNotReady (avviso) | Il pod è in uno stato non pronto da più di 15 minuti. |
KubePersistentVolumeFillingUp (critico) | Byte disponibili di un PersistentVolume richiesto < 0,03. |
KubePersistentVolumeFillingUp (avviso) | Byte liberi di un PersistentVolume richiesto < 0,15. |
KubePersistentVolumeErrors (critico) | Il volume permanente si trova nella fase Non riuscito o In attesa per cinque minuti. |
KubeNodeNotReady (avviso) | Il nodo non è pronto da più di 15 minuti. |
KubeNodeCPUUsageHigh (critico) | L'utilizzo della CPU del nodo è > 80%. |
KubeNodeMemoryUsageHigh (critico) | L'utilizzo della memoria dei nodi è superiore all'80%. |
NodeFilesystemSpaceFillingUp (avviso) | L'utilizzo del file system del nodo è superiore al 60%. |
NodeFilesystemSpaceFillingUp (critico) | L'utilizzo del file system del nodo è superiore all'85%. |
CertManagerCertExpirySoon (warning) | Un certificato scade tra 21 giorni. |
CertManagerCertNotReady (critico) | Un certificato non è pronto per gestire il traffico dopo 10 minuti. |
CertManagerHittingRateLimits (critico) | È stato raggiunto un limite di frequenza per la creazione e il rinnovo dei certificati per cinque minuti. |
DeploymentNotReady (critico). | Un deployment sul cluster di amministrazione dell'organizzazione è in stato non pronto da più di 15 minuti. |
Esempio di alertmanagerConfigurationConfigmaps
La sintassi delle configurazioni in ConfigMap elencate da alertmanagerConfigurationConfigmaps
deve seguire https://prometheus.io/docs/alerting/latest/configuration/
apiVersion: observability.gdc.goog/v1alpha1
kind: ObservabilityPipeline
metadata:
# Choose namespace that matches the project's namespace
namespace: kube-system
name: observability-config
# Configure Alertmanager
alerting:
# Storage size for alerting data within organization
# Permission: PA
localStorageSize: 1Gi
# Permission: PA & AO
# alertmanager config must be under the key "alertmanager.yml" in the configMap
alertmanagerConfig: <configmap-for-alertmanager-config>
# Permission: PA
volumes:
- <volume referenced in volumeMounts>
# Permission: PA
volumeMounts:
- <volumeMount referenced in alertmanagerConfig>
Configurazione di esempio della regola
# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringRule
metadata:
# Choose namespace that contains the metrics that rules are based on
# Note: alert/record will be produced in the same namespace
namespace: g-fleetns-a
name: alerting-config
spec:
# Rule evaluation interval
interval: <duration>
# Configure limit for number of alerts (0: no limit)
# Optional, Default: 0 (no limit)
limit: <int>
# Configure record rules
recordRules:
# Define which timeseries to write to (must be a valid metric name)
- record: <string>
# Define PromQL expression to evaluate for this rule
expr: <string>
# Define labels to add or overwrite
# Optional, Map of {key, value} pairs
labels:
<labelname>: <labelvalue>
# 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: <string>
# Define when an active alert moves from pending to firing
# Optional, Default: 0s
for: <duration>
# 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: <enum: [error, critical, warning, info]>
code:
resource: <Short name of the related operable component>
<labelname>: <tmpl_string>
# 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:
<labelname>: <tmpl_string>
# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1alpha1
kind: LoggingRule
metadata:
# Choose namespace that contains the logs that rules are based on
# Note: alert/record will be produced in the same namespace
namespace: g-fleetns-a
name: alerting-config
spec:
# Choose which log source to base alerts on (Operational/Audit/Security Logs)
# Optional, Default: Operational
source: <string>
# Rule evaluation interval
interval: <duration>
# Configure limit for number of alerts (0: no limit)
# Optional, Default: 0 (no limit)
limit: <int>
# Configure record rules
recordRules:
# Define which timeseries to write to (must be a valid metric name)
- record: <string>
# Define LogQL expression to evaluate for this rule
# https://grafana.com/docs/loki/latest/rules/
expr: <string>
# Define labels to add or overwrite
# Optional, Map of {key, value} pairs
labels:
<labelname>: <labelvalue>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define LogQL expression to evaluate for this rule
expr: <string>
# Define when an active alert moves from pending to firing
# Optional, Default: 0s
for: <duration>
# 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: <enum: [error, critical, warning, info]>
code:
resource: <Short name of the related operable component>
<labelname>: <tmpl_string>
# 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:
<labelname>: <tmpl_string>
Avvisi di query dall'API HTTP
La piattaforma di osservabilità espone un endpoint API HTTP per l'esecuzione di query e la lettura di metriche, avvisi e altri dati delle serie temporali dal tuo progetto per il monitoraggio del sistema.Esegui query sugli avvisi direttamente dall'API HTTP di osservabilità per configurare attività automatizzate, adattare le risposte e creare integrazioni in base al tuo caso d'uso. Ad esempio, inserisci l'output in un altro comando, esporta i dettagli in formati di file di testo o configura un cron job Linux. Puoi chiamare l'API HTTP di osservabilità dall'interfaccia a riga di comando (CLI) o da un browser web e ottenere il risultato in formato JSON.
Questa sezione spiega come chiamare l'endpoint API HTTP di osservabilità dalla CLI utilizzando la specifica API per eseguire query sugli avvisi.
Esegui query sugli avvisi direttamente dall'API HTTP di osservabilità per configurare attività automatizzate, adattare le risposte e creare integrazioni in base al tuo caso d'uso. Ad esempio, inserisci l'output in un altro comando, esporta i dettagli in formati di file di testo o configura un cron job Linux. Puoi chiamare l'API HTTP di osservabilità dall'interfaccia a riga di comando (CLI) o da un browser web e ottenere il risultato in formato JSON.
Questa sezione spiega come chiamare l'endpoint API HTTP di osservabilità dalla CLI utilizzando la specifica dell'API Alertmanager per eseguire query sulle metriche.
Prima di iniziare
Per ottenere le autorizzazioni necessarie per accedere all'endpoint API HTTP di Observability, chiedi all'amministratore IAM del progetto di concederti il ruolo Visualizzatore Alertmanager di Project Cortex (project-cortex-alertmanager-viewer
) nello spazio dei nomi del progetto.
L'amministratore IAM del progetto può concederti l'accesso creando un binding del ruolo:
a. Amministratore root dell'operatore dell'infrastruttura (IO) - Project Cortex Alertmanager Viewer
:
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
io-cortex-alertmanager-viewer-binding -n infra-obs
--user=fop-infrastructure-operator@example.com
--role=project-cortex-alertmanager-viewer
b. Amministratore della piattaforma (PA) - Amministratore root - Project Cortex Alertmanager Viewer
:
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
pa-cortex-alertmanager-viewer-binding -n platform-obs
--user=fop-platform-admin@example.com
--role=project-cortex-alertmanager-viewer
c. Amministratore principale operatore dell'applicazione (AO) - Visualizzatore Alertmanager di Project Cortex: Progetto: $AO_PROJECT Nome utente AO: $AO_USER
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
project-cortex-alertmanager-viewer-binding -n $AO_PROJECT
--user=$AO_USER
--role=project-cortex-alertmanager-viewer
Una volta creato il binding del ruolo, puoi accedere al corrispondente Alertmanager con il tuo nome utente di accesso.
Verifica l'associazione del ruolo
kubectl --kubeconfig $HOME/org-1-admin-kubeconfig get rolebinding -n platform-obs
Per informazioni sull'impostazione dei binding dei ruoli dalla console GDC, vedi Concedere l'accesso alle risorse.
Endpoint Cortex
Il seguente URL è l'endpoint Cortex per accedere agli avvisi:
https://GDC_URL/PROJECT_NAME/cortex/alertmanager/
Sostituisci quanto segue:
- GDC_URL: l'URL della tua organizzazione in GDC.
- PROJECT_NAME: il nome del progetto.
Chiama l'endpoint API
Segui questi passaggi per raggiungere l'endpoint dell'API Cortex dalla CLI ed eseguire query sugli avvisi:
- Assicurati di soddisfare i prerequisiti.
- Apri la CLI.
Utilizza lo strumento
curl
per chiamare l'URL dell'endpoint Cortex ed estendere l'URL utilizzando l'https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers standard per eseguire query sugli avvisi. Ad esempio:curl https://console.org-1.zone1.google.gdch.test/alice/cortex/alertmanager/api/v1/alertmanagers
Ottieni l'output nella CLI dopo il comando. Il formato della risposta API è JSON.