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
- Segui la guida rapida per Cloud Logging.
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
In Google Cloud Console, vai alla pagina Kubernetes Engine >Cluster Kubernetes:
Fai clic su Crea cluster.
Configura il cluster in base alle tue esigenze.
Fai clic su Opzioni avanzate. Nella sezione Funzionalità aggiuntive, abilita Abilita servizio Stackdriver Logging.
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
In Google Cloud Console, vai alla pagina Kubernetes Engine >Cluster Kubernetes:
Fai clic su Modificaedit.
Imposta il valore del menu a discesa Stackdriver Logging su Abilitato.
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
In Google Cloud Console, vai alla pagina Kubernetes Engine >Cluster Kubernetes:
Fai clic su Modificaedit per il cluster da modificare.
Imposta il valore del menu a discesa Stackdriver Logging su Disattivato.
Fai clic su Salva.
Passaggi successivi
- Per scoprire di più sui costi della suite operativa di Google Cloud, consulta la pagina Prezzi.
- Per informazioni su Cloud Logging, consulta la documentazione di Cloud Logging.
- Per informazioni sulle risorse e sui servizi della suite operativa di Google Cloud, consulta Risorse e servizi monitorati.