Configura logging e monitoraggio per GKE


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

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

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 per 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:

  • Crea un nuovo cluster e configura 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 initialize gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.
  • Assicurati di essere un proprietario del progetto contenente il cluster.

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

Log e metriche

Puoi scegliere se inviare o meno log e metriche dal tuo cluster GKE a Cloud Logging e Cloud Monitoring. Le seguenti sezioni descrivono quali log e metriche sono disponibili e quali log e metriche 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, se vuoi, 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
Nessun valore NONE Nessun log inviato a Cloud Logging; nessun agente per la raccolta dei log installato nel cluster. Questo valore non è supportato per i cluster GKE Autopilot.
Sistema SYSTEM Raccoglie i log dai seguenti elementi:
  • 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, inclusi 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 sui nodi degli utenti. 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 inviare metriche di sistema e, se vuoi, puoi inviare metriche aggiuntive.

Scopri di più sui prezzi di Cloud Monitoring, incluse le 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
Nessun valore NONE Nessuna metrica inviata a Cloud Monitoring; nessun agente per la raccolta delle metriche installato nel cluster. Questo valore non è supportato per i cluster GKE Autopilot.
Sistema SYSTEM Metriche dei componenti di sistema essenziali necessari per Kubernetes. Consulta un elenco completo di queste metriche Kubernetes.
Server API API_SERVER Metriche di kube-apiserver. Consulta un elenco completo delle metriche del server API.
Scheduler SCHEDULER Metriche di kube-scheduler. Consulta un elenco completo delle metriche dello scheduler.
Gestore del controller CONTROLLER_MANAGER Metriche di kube-controller-manager. Consulta un elenco completo delle metriche del gestore del controller.
Volume permanente (archiviazione) STORAGE Metriche relative allo spazio di archiviazione di kube-state-metrics. Include metriche per volumi permanenti e attestazioni di volumi permanenti. Consulta un elenco completo delle metriche di archiviazione.
Pod POD Metriche relative ai pod di kube-state-metrics. Consulta un elenco completo delle metriche dei pod.
Deployment DEPLOYMENT Metriche di deployment da kube-state-metrics. Consulta un elenco completo delle metriche di deployment.
StatefulSet STATEFULSET Metriche StatefulSet da kube-state-metrics. Consulta un elenco completo delle metriche StatefulSet.
DaemonSet DAEMONSET Metriche DaemonSet da kube-state-metrics. Consulta un elenco completo delle metriche DaemonSet.
HorizonalPodAutoscaler HPA Metriche HPA di kube-state-metrics. Consulta un elenco completo delle metriche di HorizonalPodAutoscaler.

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 con 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.

  • I log di sistema e le metriche sono abilitati per tutti i tipi di cluster e non possono essere disabilitati.
  • I log dei carichi 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, ulteriori log e metriche utili sono abilitati per impostazione predefinita se ti registri a un parco risorse durante la creazione del cluster. Se vuoi abilitare questi log e queste 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

Tutti i cluster registrati in un progetto in cui è abilitato GKE Enterprise possono utilizzare le metriche del piano di controllo e le metriche di stato Kube 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 monitoraggio e logging per un nuovo cluster

Le istruzioni per la creazione del cluster in questa sezione riguardano solo le opzioni pertinenti 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 logging e monitoraggio durante la creazione di un cluster GKE, completa questi passaggi:

Console

Per un cluster Autopilot:

  1. Nel riquadro di navigazione della pagina di creazione del cluster Autopilot, 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 di telemetria, il che significa che il logging del sistema e del carico 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, del server API, dello scheduler e del gestore del controller, passa --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. Analogamente, puoi configurare le metriche da inviare a Cloud Monitoring passando un elenco di valori separati da virgole al flag --monitoring. Per non raccogliere metriche, supera --monitoring=NONE. Per raccogliere le metriche di sistema, supera --monitoring=SYSTEM. Per raccogliere tutte le metriche, trasmetti --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET, DAEMONSET,HPA. Ad esempio:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA
      
    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 consente 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 è necessario il provider Terraform Google Cloud versione 4.44.0 o successiva.

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

Configura monitoraggio e logging per un cluster esistente

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

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

Quale supporto di monitoraggio e logging utilizza il mio cluster?

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

  1. Nel pannello di navigazione della console Google Cloud, seleziona Kubernetes Engine e poi Cluster:

    Vai a Cluster Kubernetes

  2. Nel riquadro Dettagli del tuo cluster, visualizza 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. Nel pannello di navigazione della console Google Cloud, seleziona Kubernetes Engine e poi Cluster:

    Vai a Cluster Kubernetes

  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 gcloud riguardano l'upgrade del supporto del monitoraggio e del logging del cluster utilizzando 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 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, passa --logging=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --logging=NONE
    
  • Configura le metriche da inviare 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 è necessario il provider Google Cloud Terraform 4.44.0 o versioni successive.

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

Parametri di configurazione deprecati

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

Configurazione precedente Vecchi argomenti create Vecchi argomenti update Nuovi argomenti create e update
Disabilitato --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, consulta la pagina Prezzi.