Cloud Logging

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questa pagina viene spiegato come utilizzare Cloud Logging per raccogliere ed eseguire query sui log dai cluster Google Kubernetes Engine (GKE).

Panoramica

Se Logging è abilitato nel cluster, i log vengono archiviati in un datastore permanente dedicato. Il progetto Google Cloud contiene diversi log pertinenti per un cluster GKE. tra cui il Log delle attività di amministrazione, il log di accesso ai dati e il log Eventi.

Un log è una raccolta di voci di log e ciascuna voce di log si applica a un determinato tipo di risorsa. Ecco i tipi di risorse più pertinenti per i cluster GKE:

Tipo di risorsa Nome visualizzato
cluster_k8s Cluster Kubernetes
cluster_gke Operazioni cluster GKE
container_gke Container GKE
nodo_gke Operazioni pool di nodi GKE

Per informazioni dettagliate sulle voci di log che si applicano ai tipi di risorse Cluster Kubernetes e Operazioni cluster GKE, consulta Log di controllo.

Sebbene lo stesso GKE archivia i log, questi non vengono archiviati in modo permanente. Ad esempio, i log dei container GKE vengono rimossi quando viene rimosso il pod host, quando il disco in cui sono archiviati esaurisce lo spazio o quando vengono sostituiti da log più recenti. I log di sistema vengono periodicamente rimossi per liberare spazio per i nuovi log. Gli eventi del cluster vengono rimossi dopo un'ora.

Per i log di container e di sistema, GKE esegue il deployment di un agente di logging per nodo che legge i log dei container, aggiunge metadati utili e li archivia. L'agente Logging controlla i log dei container nelle seguenti origini:

  • Log di output ed errori standard da processi containerizzati
  • Log di kubelet e runtime del container
  • Log per componenti di sistema, come script di avvio delle VM

Per gli eventi, GKE utilizza un deployment nello spazio dei nomi kube-system che raccoglie automaticamente gli eventi e li invia a Logging.

Logging è compatibile con il formato JSON. I log vengono archiviati per un massimo di 30 giorni.

Prima di iniziare

Per preparare questa attività, procedi nel seguente modo:

  • Assicurati di aver attivato l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Assicurati di aver installato Cloud SDK.
  • Imposta l'ID progetto predefinito:
    gcloud config set project [PROJECT_ID]
  • Se utilizzi cluster di zona, imposta la zona di calcolo predefinita:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Se utilizzi cluster regionali, imposta l'area geografica di calcolo predefinita:
    gcloud config set compute/region [COMPUTE_REGION]
  • Aggiorna gcloud alla versione più recente:
    gcloud components update

Attivazione di Logging

Puoi creare un cluster con Logging attivato o abilitare il logging in un cluster esistente.

Creazione di un cluster con Logging

gcloud

Quando crei un cluster, il flag --enable-cloud-logging viene impostato automaticamente, in modo da abilitare Logging nel cluster.

Per disattivare questo comportamento predefinito, imposta il flag --no-enable-cloud-logging.

console

  1. In Google Cloud Console, vai alla pagina Kubernetes Engine >Cluster Kubernetes:

    Vai ai cluster Kubernetes

  2. Fai clic su Crea cluster.

  3. Configura il cluster in base alle tue esigenze.

  4. Fai clic su Opzioni avanzate. Nella sezione Funzionalità aggiuntive, abilita Abilita servizio Stackdriver Logging.

  5. Fai clic su Crea.

Abilitazione di Logging per un cluster esistente

gcloud

Per abilitare Logging per un cluster esistente, esegui questo comando, dove [CLUSTER_NAME] è il nome del cluster.

gcloud container clusters update [CLUSTER_NAME] --logging-service logging.googleapis.com

console

  1. In Google Cloud Console, vai alla pagina Kubernetes Engine >Cluster Kubernetes:

    Vai ai cluster Kubernetes

  2. Fai clic su Modifica.

  3. Imposta il valore del menu a discesa Stackdriver Logging su Abilitato.

  4. Fai clic su Salva.

Visualizzazione dei log

Puoi visualizzare i log in Esplora log di Google Cloud Console.

Per saperne di più sulla visualizzazione dei log, inclusa la creazione di query di base e avanzate, consulta Visualizzazione dei log nella documentazione di Logging.

Esempi di query

  • Log delle query dai pod con etichetta nginx-deployment:

    resource.type="container"
    resource.labels.pod_id:"nginx-deployment-"
  • Log delle query nello spazio dei nomi prod con gravità WARNING o superiore:

    resource.type="container"
    resource.labels.namespace_id="prod"
    severity>WARNING

    Per ulteriori informazioni sui livelli di gravità, consulta Log Severity.

  • Esegui query sui log da un container specifico, my-container, in un pod specifico, my-pod, con un payload di testo:

    resource.type="container"
    resource.labels.container_name="my_container"
    resource.labels.pod_id="my_pod"
    textPayload:"abracadabra"

Limitazioni

Le voci su più righe (voci con caratteri del feed di righe) potrebbero non essere elaborate correttamente. Per evitare questo problema, aggrega i log con stringhe JSON su una sola riga.

Disattivazione del logging

gcloud

Per disabilitare il logging e il monitoraggio legacy per un cluster esistente, esegui questo comando, dove [CLUSTER_NAME] è il nome del cluster.

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none

Se esegui Cloud Operations for GKE nel tuo cluster, devi disabilitare il monitoraggio e il logging utilizzando gcloud beta per impostare i seguenti flag nel tuo cluster:

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

console

  1. In Google Cloud Console, vai alla pagina Kubernetes Engine >Cluster Kubernetes:

    Vai ai cluster Kubernetes

  2. Fai clic su Modifica per il cluster da modificare.

  3. Imposta il valore del menu a discesa Stackdriver Logging su Disattivato.

  4. Fai clic su Salva.

Passaggi successivi