Questa sezione descrive come raccogliere i log operativi da un servizio nell'appliance air-gap di Google Distributed Cloud (GDC) per il logging di sistema e l'osservabilità dei dati.
La piattaforma Logging fornisce un'API Kubernetes personalizzata per raccogliere i log a livello di progetto generati dai tuoi servizi tramite target di logging di sistema. Devi eseguire il deployment di una risorsa personalizzata LoggingTarget
nello spazio dei nomi del progetto nel cluster di amministrazione dell'organizzazione. In base a questa risorsa, la piattaforma Logging inizia a raccogliere i dati di logging del sistema. Accedi a questi log utilizzando l'interfaccia utente dello strumento di monitoraggio del sistema
o l'API GDC Logging, seguendo i passaggi descritti in Eseguire query e visualizzare i log.
Per informazioni sulle best practice per implementare la registrazione per i componenti di Kubernetes, consulta https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md.
Prima di iniziare
Per ottenere le autorizzazioni necessarie per raccogliere i log operativi o visualizzare quelli raccolti, chiedi all'amministratore IAM del progetto di concederti uno dei seguenti ruoli nello spazio dei nomi del progetto:
- Logging Target Creator: crea risorse personalizzate
LoggingTarget
. Richiedi il ruolo Creatore target di logging (loggingtarget-creator
). - Logging Target Editor: modifica le risorse personalizzate
LoggingTarget
. Richiedi il ruolo Editor destinazione logging (loggingtarget-editor
). - Visualizzatore target di Logging: visualizza le risorse personalizzate
LoggingTarget
. Richiedi il ruolo Visualizzatore target di Logging (loggingtarget-viewer
).
Configura la raccolta dei log operativi da un servizio
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
nel cluster di amministrazione dell'organizzazione 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
LoggingTarget
CR specificando i pod selezionati per la raccolta dei log operativi, lo spazio dei nomi del progetto e qualsiasi impostazione aggiuntiva. Per ulteriori informazioni, consulta Configurare la risorsa personalizzataLoggingTarget
. - Esegui il deployment della CR
LoggingTarget
nello spazio dei nomi del progetto nel cluster di amministrazione dell'organizzazione. La pipeline inizia a raccogliere i log dai componenti aggiuntivi del progetto. - Esegui query sui log dall'istanza Grafana del tuo progetto, chiamata anche istanza di monitoraggio del sistema. istanza di monitoraggio del sistema del tuo progetto. Per maggiori informazioni, consulta Eseguire query e visualizzare i log.
Utilizza 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, visita https://grafana.com/docs/grafana/latest/explore/logs-integration/.
Configurare la risorsa personalizzata LoggingTarget
La risorsa personalizzata LoggingTarget
indica alla pipeline di logging del sistema di raccogliere i log di servizi specifici del tuo progetto e fornire l'osservabilità dei dati. Devi eseguire il deployment di questa risorsa nello spazio dei nomi da cui vuoi raccogliere i log.
Il seguente file YAML mostra un esempio di configurazione di LoggingTarget
:
# 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: my-service-logging-target
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.
# For example, the value '["admin", "system"]' indicates to consider
# the admin cluster 'OR' the system cluster.
# Optional
matchClusters:
- CLUSTER_NAME
- CLUSTER_NAME
# The pod name prefixes to collect logs from.
# The Observability 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:
- POD_NAME
- POD_NAME
# The container name prefixes to collect logs from.
# The Observability 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:
- CONTAINER_NAME
- CONTAINER_NAME
# 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: 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 progettoCLUSTER_NAME
: il nome del clusterPOD_NAME
: il prefisso del nome del podCONTAINER_NAME
: il prefisso del nome del containerSERVICE_NAME
: il nome del servizio
I campi parser
, logAccessLevel
e additionalFields
contengono valori di esempio che puoi modificare.
Per impostazione predefinita, tutte le voci di log operativi vengono salvate per l'ID tenant dello spazio dei nomi del progetto. Per sovrascrivere questo comportamento, fornisci un valore logAccessLevel
nella risorsa personalizzata LoggingTarget
.