La raccolta dei log nell'appliance Google Distributed Cloud (GDC) con air gap consente di aggregare gli eventi operativi dei tuoi workflow per il monitoraggio e la risoluzione dei problemi. Esegui il deployment di una risorsa personalizzata LoggingTarget nello spazio dei nomi del progetto nel server API di gestione per estrarre, indicizzare ed etichettare i log dai componenti del servizio.
Dopo aver configurato la raccolta dei log, puoi eseguire query e visualizzare i log nell'interfaccia utente di Grafana. Per i suggerimenti sulla strumentazione, consulta le linee guida per il logging di Kubernetes.
Prima di iniziare
Per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate LoggingTarget, chiedi all'amministratore IAM dell'organizzazione o all'amministratore IAM del progetto di concederti uno dei ruoli LoggingTarget associati.
A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere ruoli di creator, editor o visualizzatore per questa risorsa in un'organizzazione o un progetto. Per saperne di più, consulta Prepara le autorizzazioni IAM.
Operatori di applicazioni: per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate
LoggingTargetin 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 LoggingTarget Editor (loggingtarget-editor). - LoggingTarget Viewer: visualizza le risorse personalizzate
LoggingTarget. Richiedi il ruolo LoggingTarget Viewer (loggingtarget-viewer).
- LoggingTarget Creator: crea risorse personalizzate
Amministratori della piattaforma: per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate
LoggingTargetnello spazio dei nomiplatform-obsnel server API di gestione, chiedi all'amministratore IAM dell'organizzazione di concederti uno dei seguenti ruoli del cluster nello spazio dei nomiplatform-obs:- LoggingTarget PA Creator: crea risorse personalizzate
LoggingTarget. Richiedi il ruolo del cluster LoggingTarget PA Creator (loggingtarget-pa-creator). - LoggingTarget PA Editor: modifica o aggiorna le risorse personalizzate
LoggingTarget. Richiedi il ruolo del cluster LoggingTarget PA Editor (loggingtarget-pa-editor). - LoggingTarget PA Viewer: visualizza le risorse personalizzate
LoggingTarget. Richiedi il ruolo del cluster LoggingTarget PA Viewer (loggingtarget-pa-viewer).
- LoggingTarget PA Creator: crea risorse personalizzate
Raccogli i log operativi
Gli audit log operativi registrano condizioni, modifiche e azioni durante la gestione delle operazioni in corso in applicazioni e servizi su GDC. Esegui il deployment della risorsa personalizzata LoggingTarget sul server API di gestione 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
LoggingTargetnel server dell'API di gestione, specificando i pod selezionati per la raccolta dei log operativi, lo spazio dei nomi del progetto e altre impostazioni aggiuntive. Per scoprire l'aspetto diLoggingTarget, consulta Configura la risorsa personalizzataLoggingTarget. Esegui il deployment della risorsa personalizzata
LoggingTargetnello spazio dei nomi del progetto nel server dell'API di gestione:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f LOGGING_TARGET_NAMESostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso kubeconfig del server API di gestione a livello di zona.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 saperne di più, consulta Esegui query e visualizza i 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, consulta https://grafana.com/docs/grafana/latest/explore/logs-integration/.
Configura la risorsa personalizzata LoggingTarget
La risorsa personalizzata LoggingTarget indica alla pipeline di logging di raccogliere i log da 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 altra impostazione aggiuntiva.
LoggingTarget
Questa risorsa definisce le seguenti configurazioni:
- Target: i criteri per la selezione dei pod e dei 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.
- Analizzatore log: un parser predefinito per interpretare le voci di log, mappare gli output dei log alle etichette ed estrarre i campi pertinenti.
- Identificazione del servizio: il nome del servizio applicato come etichetta alle voci di log per facilitare l'identificazione e il filtro.
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, segui questi passaggi:
- Determina il progetto GDC da cui vuoi raccogliere i log.
Nella configurazione di
LoggingTarget, specifica i pod per la raccolta dei log operativi, lo spazio dei nomi del progetto e le eventuali impostazioni aggiuntive.Il seguente file YAML mostra un esempio di configurazione
LoggingTargetinmy-project-namespace, dove il prefisso del nome del pod da cui raccogliere i log èmy-pod-prefix, il livello di accesso per le voci di log è concesso agli operatori dell'applicazione (ao), il nome del servizio èmy-service-namee il formato del 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-nameConsulta la specifica
LoggingTargetcompleta e la documentazione di riferimento dell'API per ulteriori campi e opzioni.Applica la configurazione
LoggingTargetal server dell'API di gestione all'interno dello stesso spazio dei nomi dei pod di destinazione:kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_TARGET_NAME.yamlSostituisci quanto segue:
KUBECONFIG_PATH: il percorso del file kubeconfig per il server 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 progetto.
Puoi eseguire query sui log raccolti utilizzando l'interfaccia utente di Grafana o l'API Log Query. Per saperne di più, consulta Esegui query e visualizza i 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/.
Specifica LoggingTarget completa
Il seguente file YAML mostra un esempio della 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.