Configura il logging e il monitoraggio per GKE


Google Kubernetes Engine (GKE) include l'integrazione con Cloud Logging e Cloud Monitoring, incluso Google Cloud Managed Service per Prometheus.

Questa integrazione ti consente di monitorare i cluster GKE in esecuzione, gestire i log di sistema e debug e analizzare le prestazioni del sistema utilizzando funzionalità di profilazione e tracciamento avanzate.

Questa integrazione fornisce anche una dashboard per l'osservazione dei cluster GKE.

I log di sicurezza, inclusi gli audit log di base, sono disponibili per GKE e la maggior parte degli altri servizi Google Cloud, anche quando Cloud Logging non è abilitato per un cluster GKE. Per ulteriori informazioni, consulta Audit log di Cloud.

In questa pagina viene descritto come effettuare le seguenti operazioni:

  • Creare un nuovo cluster e configurare Cloud Logging, Cloud Monitoring e Google Cloud Managed Service per Prometheus.

  • Seleziona i log e le metriche da raccogliere.

  • Disabilita Cloud Logging, Cloud Monitoring e Google Cloud Managed Service per Prometheus per un cluster.

Per i cluster GKE Autopilot, non puoi disabilitare l'integrazione di Cloud Logging e Cloud Monitoring.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e quindi initialize gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.
  • Assicurati di essere un proprietario del progetto che contiene il cluster.

  • Assicurati di aver abilitato l'API Cloud Logging. Puoi controllare lo stato dell'API Cloud Logging nella pagina Panoramica.

Log e metriche

Puoi scegliere se inviare o meno log e metriche dal cluster GKE a Cloud Logging e Cloud Monitoring. Le seguenti sezioni descrivono quali log e metriche sono disponibili e quali sono abilitati per impostazione predefinita al momento della creazione del cluster.

Log disponibili

Se scegli di inviare i log a Cloud Logging, devi inviare i log di sistema e, facoltativamente, puoi inviarli da origini aggiuntive.

Scopri di più sui prezzi di Cloud Logging.

La seguente tabella indica i valori supportati per il flag --logging per i comandi create e update.

Sorgente log Valore --logging Log raccolti
Nessuna NONE Nessun log inviato a Cloud Logging; nessun agente di raccolta dei log installato nel cluster. Questo valore non è supportato per i cluster GKE Autopilot.
Sistema SYSTEM Raccoglie i log da quanto segue:
  • Tutti i pod in esecuzione negli spazi dei nomi kube-system, istio-system, knative-serving, gke-system e config-management-system.
  • Servizi chiavi non containerizzati, tra cui runtime docker/containerd, kubelet, kubelet-monitor, node-problem-detector e kube-container-runtime-monitor.
  • L'output delle porte seriali del nodo, se i metadati dell'istanza VM serial-port-logging-enable sono impostati su true.

Inoltre, raccoglie gli eventi Kubernetes. Questo valore è obbligatorio per tutti i tipi di cluster.

Carichi di lavoro WORKLOAD Tutti i log generati da container non di sistema in esecuzione su nodi utente. Questo valore è attivo per impostazione predefinita, ma facoltativo per tutti i tipi di cluster.
Server API API_SERVER Tutti i log generati da kube-apiserver. Questo valore è facoltativo per tutti i tipi di cluster.
Scheduler SCHEDULER Tutti i log generati da kube-scheduler. Questo valore è facoltativo per tutti i tipi di cluster.
Gestore del controller CONTROLLER_MANAGER Tutti i log generati da kube-controller-manager. Questo valore è facoltativo per tutti i tipi di cluster.

Metriche disponibili

Se scegli di inviare le metriche a Cloud Monitoring, devi inviarne le metriche di sistema e, facoltativamente, puoi inviarne altre.

Scopri di più sui prezzi di Cloud Monitoring e sulle metriche non addebitabili.

La seguente tabella indica i valori supportati per il flag --monitoring per i comandi create e update.

Origine Valore --monitoring Metriche raccolte
Nessuna NONE Nessuna metrica inviata a Cloud Monitoring; nessun agente di raccolta delle metriche installato nel cluster. Questo valore non è supportato per i cluster GKE Autopilot.
Sistema SYSTEM Metriche dei componenti di sistema essenziali richiesti per Kubernetes. Per un elenco completo delle metriche, consulta Metriche Kubernetes.
Server API API_SERVER Metriche di kube-apiserver. Per un elenco completo delle metriche, consulta le metriche del server API.
Scheduler SCHEDULER Metriche di kube-scheduler. Per un elenco completo delle metriche, consulta Metriche dello scheduler.
Gestore del titolare CONTROLLER_MANAGER Metriche di kube-controller-manager. Per un elenco completo delle metriche, consulta Metriche del gestore del controller.
Volume permanente (archiviazione) STORAGE Metriche di archiviazione di kube-state-metrics. Include le metriche per le attestazioni di volumi permanenti e di volumi permanenti. Per un elenco completo delle metriche, consulta Metriche di archiviazione.
Pod POD Metriche pod da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche dei pod.
Deployment DEPLOYMENT Metriche di deployment da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche di deployment.
StatefulSet STATEFULSET Metriche StatefulSet di kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche StatefulSet.
DaemonSet DAEMONSET Metriche DaemonSet di kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche DaemonSet.
HorizonalPodAutoscaler HPA Metriche HPA di kube-state-metrics. Consulta un elenco completo delle metriche di HorizonalPodAutoscaler.
cAdvisor CADVISOR Metriche di cAdvisor del pacchetto di metriche cAdvisor/Kubelet. Per un elenco completo delle metriche, consulta Metriche di cAdvisor.
kubelet KUBELET Metriche kubelet di cAdvisor/Kubelet Per un elenco completo delle metriche, consulta il pacchetto delle metriche. Metriche kubelet.

Inoltre, puoi raccogliere metriche in stile Prometheus esposte da qualsiasi carico di lavoro GKE utilizzando Google Cloud Managed Service per Prometheus, che ti consente di monitorare e creare avvisi sui carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.

Log e metriche abilitati per impostazione predefinita

Quando crei un nuovo cluster GKE su Google Cloud, alcuni log e metriche vengono abilitati per impostazione predefinita durante la creazione del cluster.

  • Le metriche e i log di sistema sono abilitati per tutti i tipi di cluster e non possono essere disabilitati.
  • I log del carico di lavoro sono abilitati per impostazione predefinita per tutti i cluster Autopilot, ma possono essere disabilitati. Sconsigliamo di disabilitare i log dei carichi di lavoro a causa dell'impatto sulla supportabilità.
  • Per i progetti della versione GKE Enterprise, altre metriche e log utili sono abilitati per impostazione predefinita se ti registri a un parco risorse durante la creazione del cluster. Se vuoi abilitare questi log e metriche dopo la creazione di un cluster, consulta Modificare il cluster.

Nelle tabelle seguenti, un segno di spunta () indica quali log e metriche sono abilitati per impostazione predefinita quando crei e registri un nuovo cluster in un progetto in cui è abilitato GKE Enterprise:

Log

Nome log Autopilot Standard
Sistema
Carichi di lavoro -
Server API
Scheduler
Gestore del controller

I log del piano di controllo (server API, scheduler e gestore del controller) sono soggetti agli addebiti di Cloud Logging.

Metriche

Nome metrica Autopilot Standard
Sistema
Server API
Scheduler
Gestore del controller
Volume permanente (archiviazione)
i pod
Deployment
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet

Tutti i cluster registrati in un progetto in cui è abilitato GKE Enterprise possono utilizzare i pacchetti per le metriche del piano di controllo, le metriche di stato Kube e le metriche cAdvisor/Kubelet senza costi aggiuntivi. In caso contrario, queste metriche sono soggette ad addebiti di Cloud Monitoring.

Puoi scegliere di disabilitare i log e le metriche predefiniti durante la creazione del cluster o dopo la creazione del cluster.

Configura il monitoraggio e il logging per un nuovo cluster

Le istruzioni per la creazione dei cluster in questa sezione riguardano solo le opzioni relative a Cloud Logging e Cloud Monitoring. Per istruzioni complete sulla creazione di un cluster GKE, consulta la documentazione per la creazione di un cluster Standard o Autopilot.

Per configurare manualmente il logging e il monitoraggio durante la creazione di un cluster GKE, completa questi passaggi:

Console

Per un cluster Autopilot:

  1. Nella pagina di creazione del cluster Autopilot, nel riquadro di navigazione, fai clic su Impostazioni avanzate.

    Crea un cluster Autopilot

  2. Nell'elenco Operazioni, seleziona i log e le metriche che vuoi raccogliere.

    • Nell'elenco Componenti per Cloud Logging, seleziona i componenti da cui vuoi raccogliere i log.

    • Nell'elenco Componenti per Cloud Monitoring, seleziona i componenti da cui vuoi raccogliere le metriche.

    I cluster Autopilot utilizzano sempre le best practice di Google per la raccolta dei dati di telemetria, il che significa che il logging del sistema e dei carichi di lavoro è sempre abilitato e il monitoraggio del sistema è sempre abilitato.

  3. Fai clic su Crea.

Per un cluster Standard:

  1. Nella pagina di creazione del cluster Standard, nel riquadro di navigazione, in Cluster, fai clic su Funzionalità.

    Crea un cluster Kubernetes

  2. Nell'elenco Operazioni, seleziona i log e le metriche che vuoi raccogliere.

    • Nell'elenco Componenti per Cloud Logging, seleziona i componenti da cui vuoi raccogliere i log.

    • Nell'elenco Componenti per Cloud Monitoring, seleziona i componenti da cui vuoi raccogliere le metriche.

    • Per disabilitare Cloud Logging (ad eccezione degli audit log), deseleziona la casella di controllo Abilita Cloud Logging.

    • Per disabilitare Cloud Monitoring, deseleziona la casella di controllo Abilita Cloud Monitoring.

    • Per disabilitare Google Cloud Managed Service per Prometheus, deseleziona la casella di controllo Abilita Google Cloud Managed Service per Prometheus.

gcloud

  1. Per i nuovi cluster, Cloud Logging e Cloud Monitoring sono abilitati per impostazione predefinita. Per creare il cluster, esegui questo comando:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION
    

    Sostituisci quanto segue:

    1. In alternativa, puoi configurare quali log vengono inviati a Cloud Logging passando un elenco di valori separati da virgole al flag --logging del comando create. Per non raccogliere log, supera --logging=NONE. Per raccogliere i log di sistema, server API, scheduler e gestore del controller, supera --logging=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER. Per raccogliere i log di sistema e dei carichi di lavoro, supera --logging=SYSTEM,WORKLOAD. Ad esempio:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --logging=SYSTEM,WORKLOAD
      
    2. Allo stesso modo, puoi configurare quali metriche vengono inviate a Cloud Monitoring passando un elenco di valori separati da virgole al flag --monitoring. Per non raccogliere metriche, supera --monitoring=NONE. Per raccogliere metriche di sistema, passa --monitoring=SYSTEM. Per raccogliere tutte le metriche, passa --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET, DAEMONSET,HPA,CADVISOR,KUBELET. Ad esempio:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA,CADVISOR,KUBELET
      
    3. Puoi abilitare separatamente Google Cloud Managed Service per Prometheus utilizzando il flag --enable-managed-prometheus. Ad esempio:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --enable-managed-prometheus
      

      Il flag --enable-managed-prometheus abilita il raccoglitore gestito, che deve essere configurato.

Terraform

  • Per configurare la raccolta di log e metriche utilizzando Terraform, consulta i blocchi logging_config e monitoring_config nel registro Terraform per google_container_cluster. Per abilitare la raccolta dei log dal server API, dallo scheduler e dal gestore del controller, è richiesto il provider Google Cloud Terraform versione 4.44.0 o successiva.

  • Per informazioni generali sull'utilizzo di Google Cloud con Terraform, consulta Terraform with Google Cloud.

Configura il monitoraggio e il logging per un cluster esistente

La seguente sezione descrive in dettaglio come modificare l'integrazione di Cloud Logging e Cloud Monitoring per un cluster GKE esistente.

La modifica del supporto per il monitoraggio e il logging e la modifica della versione Kubernetes del cluster sono azioni distinte. La modifica della versione di Kubernetes del tuo cluster non cambia il supporto configurato per il monitoraggio e il logging.

Quale supporto per il monitoraggio e il logging utilizza il mio cluster?

Per vedere le impostazioni di integrazione di Cloud Logging e Cloud Monitoring per il tuo cluster, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Cluster Kubernetes:

    Vai a Cluster Kubernetes

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Kubernetes Engine.

  2. Nel riquadro Dettagli del cluster, controlla lo stato di Cloud Logging, Cloud Monitoring e Google Cloud Managed Service per Prometheus.

Modifica il cluster

Per modificare le impostazioni di integrazione di Cloud Logging o Cloud Monitoring per un cluster esistente, segui questi passaggi:

Console

  1. Nella console Google Cloud, vai alla pagina Cluster Kubernetes:

    Vai a Cluster Kubernetes

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Kubernetes Engine.

  2. Fai clic sul nome del cluster.

  3. Per modificare quali log vengono inviati a Cloud Logging, quali metriche vengono inviate a Cloud Monitoring o se Google Cloud Managed Service per Prometheus è abilitato, fai clic su Modifica accanto a Cloud Logging, Cloud Monitoring o Google Cloud Managed Service per Prometheus.

  4. Fai clic su Salva.

gcloud

Le seguenti istruzioni di gcloud riguardano l'upgrade del supporto del monitoraggio e del logging del tuo cluster tramite il comando gcloud container clusters update. Tieni presente che utilizzi il comando update, non il comando upgrade.

  • Configura quali log vengono inviati a Cloud Logging passando un elenco di valori separati da virgole al flag --logging del comando gcloud container clusters update. Consulta un elenco completo delle origini di log disponibili. Ad esempio, per raccogliere i log di sistema e dei carichi di lavoro, passa --logging=SYSTEM,WORKLOAD. Per raccogliere solo i log di sistema, supera --logging=SYSTEM. In alternativa, per non raccogliere log, supera --logging=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --logging=NONE
    
  • Configura le metriche che vengono inviate a Cloud Monitoring passando un elenco di valori separati da virgole al flag --monitoring del comando gcloud container clusters update. Consulta un elenco completo delle origini delle metriche disponibili. Ad esempio, per raccogliere metriche di sistema, passa --monitoring=SYSTEM. In alternativa, per non raccogliere metriche, trasmetti --monitoring=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --monitoring=NONE
    
  • Configura se Google Cloud Managed Service per Prometheus è abilitato utilizzando i flag --enable-managed-prometheus o --disable-managed-prometheus. Ad esempio:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus
    

Terraform

  • Per configurare la raccolta di log e metriche utilizzando Terraform, consulta i blocchi logging_config e monitoring_config nel registro Terraform per google_container_cluster. Per abilitare la raccolta dei log dal server API, dallo scheduler e dal gestore del controller, è richiesto il provider Google Cloud Terraform versione 4.44.0 o successiva.

  • Per informazioni generali sull'utilizzo di Google Cloud con Terraform, consulta Terraform with Google Cloud.

Parametri di configurazione deprecati

Se in precedenza utilizzavi i vecchi parametri di configurazione per configurare il supporto di logging e monitoraggio per il tuo cluster GKE, questi parametri saranno ritirati. La seguente tabella mostra i parametri di configurazione equivalenti per sostituire i flag deprecati.

Configurazione precedente Argomenti create precedenti Argomenti update precedenti Nuovi argomenti create e update
Disabilitata --no-enable-stackdriver-kubernetes --no-enable-stackdriver-kubernetes --logging=NONE
--monitoring=NONE
Solo monitoraggio del sistema (logging disabilitato) --enable-stackdriver-kubernetes
--no-enable-cloud-logging
--logging-service=none
--monitoring-service=monitoring.googleapis.com/kubernetes
--logging=NONE
--monitoring=SYSTEM
Solo logging del sistema e del carico di lavoro (monitoraggio disabilitato) --enable-stackdriver-kubernetes
--no-enable-cloud-monitoring
--logging-service=logging.googleapis.com/kubernetes
--monitoring-service=none
--logging=SYSTEM,WORKLOAD
--monitoring=NONE
Solo logging e monitoraggio del sistema (beta) --enable-logging-monitoring-system-only --enable-logging-monitoring-system-only --logging=SYSTEM
--monitoring=SYSTEM
Logging e monitoraggio del sistema e del carico di lavoro --enable-stackdriver-kubernetes --enable-stackdriver-kubernetes --logging=SYSTEM,WORKLOAD
--monitoring=SYSTEM

Passaggi successivi

  • Per saperne di più sui costi associati a Cloud Logging, Cloud Monitoring e Google Cloud Managed Service per Prometheus, leggi la pagina Prezzi.