Questa pagina descrive la procedura per la raccolta dei log dai workflow negli ambienti appliance air-gap di Google Distributed Cloud (GDC) per facilitare la registrazione e l'osservabilità dei dati.
I log registrano le condizioni e le azioni mentre gestisci le operazioni dai tuoi servizi in GDC. Puoi estrarre i log prodotti dai tuoi componenti per registrare eventi e attività. La piattaforma di logging offre un'API personalizzata per raccogliere i log a livello di progetto generati dai tuoi flussi di lavoro tramite le destinazioni di logging.
Per iniziare a raccogliere i dati di log, implementa una risorsa personalizzata LoggingTarget
nello spazio dei nomi del progetto nel server dell'API Management. Dopo che il raccoglitore di log estrae
i dati dai tuoi flussi di lavoro, la piattaforma di logging aggrega i log di tutte le origini
di log, aggiunge indici e associa i log alle etichette in base alla
configurazione della risorsa personalizzata LoggingTarget
.
Accedi ai log raccolti utilizzando l'interfaccia utente di Grafana, come descritto in Eseguire query e visualizzare i log.
Per le best practice sull'implementazione della registrazione per l'osservabilità dei dati, consulta le linee guida della community di Kubernetes:
Prima di iniziare
Per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate LoggingTarget
, chiedi all'amministratore IAM dell'organizzazione o del progetto di concederti uno dei ruoli LoggingTarget
associati.
A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere i ruoli di creatore, editor o visualizzatore per questa risorsa in un'organizzazione o in un progetto. Per maggiori informazioni, vedi Preparare le autorizzazioni IAM.
Operatori di applicazioni: per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate
LoggingTarget
in un progetto nel server API di gestione, chiedi all'amministratore IAM del progetto di concederti uno dei seguenti ruoli nello spazio dei nomi del progetto:- LoggingTarget Creator: crea risorse personalizzate
LoggingTarget
. Richiedi il ruolo LoggingTarget Creator (loggingtarget-creator
). - LoggingTarget Editor: modifica le risorse personalizzate
LoggingTarget
. Richiedi il ruolo Editor LoggingTarget (loggingtarget-editor
). - LoggingTarget Viewer: visualizza le risorse personalizzate
LoggingTarget
. Richiedi il ruolo Visualizzatore LoggingTarget (loggingtarget-viewer
).
- LoggingTarget Creator: crea risorse personalizzate
Amministratori della piattaforma: per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate
LoggingTarget
nello spazio dei nomiplatform-obs
nel server API di gestione, chiedi all'amministratore IAM dell'organizzazione di concederti uno dei seguenti ruoli cluster nello spazio dei nomiplatform-obs
:- LoggingTarget PA Creator: crea risorse personalizzate
LoggingTarget
. Richiedi il ruolo del cluster LoggingTarget PA Creator (loggingtarget-pa-creator
). - Editor LoggingTarget PA: modifica o aggiorna le risorse personalizzate
LoggingTarget
. Richiedi il ruolo cluster LoggingTarget PA Editor (loggingtarget-pa-editor
). - LoggingTarget PA Viewer: visualizza le risorse personalizzate
LoggingTarget
. Richiedi il ruolo cluster LoggingTarget PA Viewer (loggingtarget-pa-viewer
).
- LoggingTarget PA Creator: crea risorse personalizzate
Raccogliere i log operativi
I log operativi registrano condizioni, modifiche e azioni mentre gestisci le operazioni in corso in applicazioni e servizi su GDC. Esegui il deployment della risorsa personalizzata LoggingTarget
sul server dell'API Management per configurare la pipeline di logging di sistema per la raccolta dei log operativi da servizi specifici a livello di progetto.
Per raccogliere i log operativi da un servizio, completa i seguenti passaggi:
- Configura la risorsa personalizzata
LoggingTarget
nel server API Management specificando i pod selezionati per la raccolta dei log operativi, lo spazio dei nomi del progetto e qualsiasi altra impostazione. Per scoprire come deve essere l'LoggingTarget
, consulta Configurare la risorsa personalizzataLoggingTarget
. Esegui il deployment della risorsa personalizzata
LoggingTarget
nello spazio dei nomi del progetto nel server dell'API Management:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f LOGGING_TARGET_NAME
Sostituisci quanto segue:
MANAGEMENT_API_SERVER
: il percorso kubeconfig del server API Management zonale.LOGGING_TARGET_NAME
: il nome della risorsa personalizzataLoggingTarget
, ad esempiomy-service-logging-target.yaml
.
La pipeline inizia a raccogliere i log dai componenti aggiuntivi del progetto.
Esegui query sui log dall'istanza Grafana del tuo progetto. Per maggiori informazioni, consulta Esecuzione di query e visualizzazione dei log.
Utilizza la funzionalità di codifica a colori integrata di Grafana per i diversi livelli di log del servizio. Per ulteriori informazioni sull'impostazione dei valori del livello di log, visita https://grafana.com/docs/grafana/latest/explore/logs-integration/.
Configurare la risorsa personalizzata LoggingTarget
La risorsa personalizzata LoggingTarget
indica alla pipeline di logging di raccogliere
i log di servizi specifici all'interno del tuo progetto GDC. Puoi specificare i target per i quali raccogli i log, un parser dei log, i livelli di accesso e qualsiasi impostazione aggiuntiva.
Questa risorsa definisce le seguenti configurazioni:
- Target: i criteri per selezionare i pod e i container da cui vuoi raccogliere i log. Puoi specificare i nomi dei cluster, i prefissi dei nomi dei pod e i prefissi dei nomi dei container.
- Strumento di analisi log: un parser predefinito per interpretare le voci di log, mappare gli output di log alle etichette ed estrarre i campi pertinenti.
- Identificazione del servizio: il nome del servizio applicato come etichetta alle voci di log per una più facile identificazione e filtraggio.
Autorizzazione: il livello di accesso per le voci di log, che controlla chi può visualizzare i log raccolti.
Configurando questi parametri all'interno della risorsa personalizzata LoggingTarget
, puoi controllare con precisione la raccolta e l'organizzazione dei log dei tuoi servizi.
Per raccogliere i log operativi da un servizio:
- Determina il progetto GDC da cui vuoi raccogliere i log.
Nella configurazione
LoggingTarget
, specifica i pod per la raccolta dei log operativi, lo spazio dei nomi del progetto e qualsiasi altra impostazione aggiuntiva.Il seguente file YAML mostra un esempio di configurazione
LoggingTarget
inmy-project-namespace
, dove il prefisso del nome del pod da cui raccogliere i log èmy-pod-prefix
, il livello di accesso alle voci di log è concesso agli operatori dell'applicazione (ao
), il nome del servizio èmy-service-name
e il formato dei log è JSON:# Configures a log scraping job apiVersion: logging.gdc.goog/v1 kind: LoggingTarget metadata: # Choose a namespace that matches the namespace of the workload pods. namespace: my-project-namespace name: my-service-logging-target spec: selector: matchPodNames: - my-pod-prefix parser: json logAccessLevel: ao serviceName: my-service-name
Per ulteriori campi e opzioni, consulta la specifica
LoggingTarget
completa e la documentazione di riferimento dell'API.Applica la configurazione
LoggingTarget
al server API Management all'interno dello stesso spazio dei nomi dei pod di destinazione:kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_TARGET_NAME.yaml
Sostituisci quanto segue:
KUBECONFIG_PATH
: il percorso del file kubeconfig per il server dell'API di gestione.LOGGING_TARGET_NAME
: il nome del file di definizioneLoggingTarget
, ad esempiomy-service-logging-target
.
La pipeline di logging inizia a raccogliere i log dai componenti aggiuntivi del tuo progetto.
Puoi eseguire query sui log raccolti utilizzando l'interfaccia utente di Grafana o l'API Log Query. Per maggiori informazioni, vedi Esecuzione di query e visualizzazione dei log.
Se utilizzi Grafana per eseguire query sui log, puoi utilizzare la funzionalità di codifica a colori integrata per i diversi livelli di log del servizio. Per ulteriori informazioni sull'impostazione dei valori del livello di log, consulta https://grafana.com/docs/grafana/latest/explore/logs-integration/.
Specifiche LoggingTarget
complete
Il seguente file YAML mostra un esempio per la specifica completa della risorsa personalizzata LoggingTarget
. Per ulteriori informazioni e una descrizione completa
dei campi, consulta la
documentazione di riferimento dell'API.
# Configures a log scraping job
apiVersion: logging.gdc.goog/v1
kind: LoggingTarget
metadata:
# Choose a namespace that matches the namespace of the workload pods.
namespace: PROJECT_NAMESPACE
name: LOGGING_TARGET_NAME
spec:
# Choose a matching pattern that identifies the pods for this job.
# Optional.
# Relationship between different selectors: 'AND'
selector:
# The clusters to collect logs from.
# The default configuration is to collect logs from all clusters.
# The relationship between different clusters is an 'OR' relationship.
# Optional
matchClusters:
- my-cluster
- another-cluster
# The pod name prefixes to collect logs from.
# The logging platform scrapes all pods with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchPodNames:
- my-pod-prefix
- another-pod-prefix
# The container name prefixes to collect logs from.
# The logging platform scrapes all containers with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchContainerNames:
- my-container-prefix
- another-container-prefix
# Choose the predefined parser for log entries.
# Use parsers to map the log output to labels and extract fields.
# Specify the log format.
# Optional.
# Options: klog_text, klog_json, klogr, gdch_json, json
parser: klog_text
# Specify an access level for log entries.
# The default value is 'ao'.
# Optional.
# Options: ao, pa, io
logAccessLevel: ao
# Specify a service name to be applied as a label.
# For user workloads consider this field as a workload name.
# Required.
serviceName: my-service-name
# The additional static fields to apply to log entries.
# The field is a key-value pair, where the field name is the key and
# the field value is the value.
# Optional.
additionalFields:
app: workload2
key: value
Sostituisci quanto segue:
PROJECT_NAMESPACE
: lo spazio dei nomi del progetto.LOGGING_TARGET_NAME
: il nome del file di definizioneLoggingTarget
.