Raccogli i log operativi dal tuo progetto AO

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:

  1. 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 personalizzata LoggingTarget.
  2. 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.
  3. 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 progetto
  • CLUSTER_NAME: il nome del cluster
  • POD_NAME: il prefisso del nome del pod
  • CONTAINER_NAME: il prefisso del nome del container
  • SERVICE_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.