Cloud Monitoring

Questa pagina spiega come utilizzare Cloud Monitoring per monitorare i tuoi cluster Google Kubernetes Engine (GKE).

Panoramica

Puoi utilizzare Monitoring per monitorare gli indicatori e creare operazioni nei cluster GKE.

Cloud Monitoring monitora le metriche di sistema e le metriche personalizzate. Le metriche di sistema sono misurazioni dell'infrastruttura del cluster, ad esempio utilizzo della CPU o della memoria. Le metriche personalizzate sono metriche specifiche dell'applicazione che definisci tu, ad esempio il numero totale di sessioni utente attive o il numero totale di pagine visualizzate.

Per le metriche di sistema, Cloud Monitoring crea un deployment che si connette periodicamente a ciascun nodo e raccoglie metriche sui relativi pod e container, quindi invia le metriche a Monitoring.

Le metriche relative all'utilizzo delle risorse di sistema vengono raccolte dalle seguenti fonti:

  • CPU: container/cpu/usage_time
  • Memoria: container/memory/bytes_used, raccolta da memory.usage_in_bytes in cgroup
  • Memoria irreversibile: container/memory/bytes_used, raccolta dal campo total_inactive_file di memory.stat
  • Memoria non modificabile: misurata da memory.usage_in_bytes - memory.total_inactive_file
  • Disco: container/disk/bytes_used

Per un elenco delle altre metriche di sistema raccolte da GKE, consulta l'Elenco metriche.

Per informazioni su come configurare le metriche personalizzate, consulta l'utilizzo delle metriche personalizzate oppure segui il scalabilità automatica dei deployment con metriche personalizzate.

Prima di iniziare

Per preparare questa attività, procedi nel seguente modo:

  • Assicurati di aver attivato l'API Google Kubernetes Engine.
  • Abilita 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
  • Accedi a Cloud Monitoring procedendo nel seguente modo:
    1. In Cloud Console, seleziona il tuo progetto Google Cloud.
      Vai a Cloud Console
    2. Nel riquadro di navigazione, seleziona Monitoraggio.

Abilitazione di Monitoring

Puoi creare un cluster con Monitoring abilitato o abilitare Monitoring in un cluster esistente.

I pool di nodi del cluster (incluso il pool di nodi predefinito) devono avere l'ambito Google Cloud necessario per interagire con Monitoring (l'ambito https://www.googleapis.com/auth/monitoring). Quando crei un nuovo cluster con monitoraggio, GKE imposta automaticamente questo ambito; tuttavia, i cluster esistenti potrebbero non disporre delle autorizzazioni necessarie.

Creazione di un cluster con monitoraggio

gcloud

Quando crei un cluster, viene impostato automaticamente il flag --enable-cloud-monitoring, che abilita Monitoring nel cluster.

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

Console

  1. In 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 Advanced options (Opzioni avanzate). Assicurati che l'opzione Abilita il servizio Stackdriver Monitoring sia selezionata.

  5. Fai clic su Crea.

Abilitazione del monitoraggio per un cluster esistente

gcloud

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

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

Se inizialmente hai creato il cluster senza Monitoring e vuoi abilitarlo in un secondo momento, i pool di nodi del cluster potrebbero non avere l'ambito Google Cloud necessario. Come soluzione alternativa, puoi creare un nuovo pool di nodi con lo stesso numero di nodi e l'ambito necessario:

gcloud container node-pools create adjust-scope \
    --cluster [CLUSTER_NAME] \
    --num-nodes [NUM_NODES] \
    --scopes https://www.googleapis.com/auth/monitoring

Dopo aver creato il nuovo pool di nodi, sposta i tuoi pod esistenti nel nuovo pool di nodi con ambito corretto per utilizzare Monitoring. Per ulteriori informazioni, consulta "Aggiornare gli ambiti VM senza tempi di inattività".

Console

Se inizialmente hai creato il cluster senza Monitoring e vuoi abilitarlo in un secondo momento, i pool di nodi del cluster potrebbero non avere l'ambito Google Cloud necessario. Consulta la sezione gcloud prima di questa per una soluzione alternativa.

  1. In 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 Monitoring su Abilitato.

  4. Fai clic su Salva.

Estensione delle metriche dell'infrastruttura

Oltre alle metriche delle applicazioni, le metriche personalizzate di Cloud Monitoring possono anche usare misurazioni dell'infrastruttura del cluster non incluse nelle metriche di sistema, ad esempio I/O disco di container. Puoi eseguire il deployment dei tuoi agenti di monitoraggio dell'infrastruttura per raccogliere e trasferire queste metriche a Cloud Monitoring.

cAdvisor

Puoi raccogliere le metriche utilizzando cAdvisor, l'agente di monitoraggio open source utilizzato in Kubernetes, per raccogliere le metriche. Puoi utilizzare prometheus-to-sd per trasferire queste metriche a Cloud Monitoring.

Per eseguire cAdvisor sul tuo cluster, segui questi passaggi:

  1. Clona consulente:

    git clone https://github.com/google/cadvisor.git
    cd cadvisor
    
  2. Segui le istruzioni di DaconSet di cAdvisor per installare kustomize. Se utilizzi Cloud Shell, esegui questo comando:

    go get github.com/kubernetes-sigs/kustomize
    
  3. Crea lo spazio dei nomi di esempio cAdvisor e il DaemonSet, che esporta tutte le metriche del container:

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
    

    Ora dovresti vedere le metriche di Prometheus in Cloud Monitoring nella risorsa gke_container.

  4. Segui le istruzioni di cAdvisor kustomization per apportare modifiche all'esempio fornito in base alle tue esigenze. Applica le tue modifiche con:

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
    

Visualizzazione delle metriche

Puoi visualizzare le metriche in Google Cloud Console.

Panoramica cluster

Monitoring offre un menu generale per GKE. Questo menu raccoglie informazioni utili sui cluster in utili dashboard.

Per visualizzare il menu Panoramica, procedi nel seguente modo:

  1. In Cloud Console, vai a Monitoring:

    Vai a Monitoring

  2. Passa il mouse sopra Risorse e seleziona Kubernetes Engine.

  3. Seleziona il cluster.

Il menu Panoramica fornisce le seguenti dashboard predefinite:

  • Incidenti: violazioni dei criteri di avviso.
  • Eventi:elenco cronologico di anomalie, incidenti, ciclo di vita, tag, criteri IAM, deployment, note, aggiornamenti del cloud provider e aggiornamenti alla gestione degli utenti che si verificano nei tuoi account cloud.
  • Utilizzo CPU: mostra le percentuali di utilizzo della CPU per cluster.
  • I/O disco: visualizza le tariffe I/O per cluster in cluster/s.
  • Traffico di rete: mostra il traffico di rete per cluster in kB/s.
  • Pod: elenco di pod e nodi (istanze VM di Compute Engine) in tutti gli spazi dei nomi. Seleziona qualsiasi pod o nodo per aprire la panoramica della risorsa.

Per scoprire di più sulla visualizzazione delle metriche, consulta la documentazione di Monitoring e la pagina Filtri di monitoraggio.

Dashboard

Puoi creare dashboard personalizzate per nodi e container GKE.

Per creare una dashboard, procedi nel seguente modo:

  1. In Cloud Console, vai a Monitoring:

    Vai a Monitoring

  2. Passa il mouse sopra Dashboard e seleziona Crea dashboard.

  3. Per creare una nuova dashboard, fai clic su Aggiungi grafico.

  4. Nel campo Title (Titolo) inserisci un nome per la dashboard.

  5. Nel campo Trova tipo di risorsa e Metrica, cerca instance e/o container, quindi seleziona le metriche che preferisci.

  6. Nel campo Tipo di metrica, inserisci o seleziona dal menu di compilazione automatica le metriche che preferisci.

  7. Utilizza il filtro per filtrare in base a un valore specifico, ad esempio app, nome o versione.

  8. Configura la dashboard in base alle tue esigenze. Per creare la dashboard, fai clic su Salva.

Metrics Explorer

Metrics Explorer consente di selezionare una metrica specifica dei cluster e di eseguire varie aggregazioni.

Per utilizzare Metrics Explorer:

  1. In Cloud Console, vai a Monitoring:

    Vai a Monitoring

  2. Passa il mouse sopra Risorse e seleziona Metrics Explorer.

  3. Nel menu di ricerca Trova tipo di risorsa e metrica, inserisci gke_container per Tipo di risorsa.

  4. Seleziona la metrica Metrica.

  5. Facoltativamente, puoi utilizzare il menu Filtro per filtrare in base alla risorsa.

  6. Utilizza le opzioni di Aggregazione per eseguire un'aggregazione.

Best practice

  • Avvisi: puoi configurare criteri di avviso che ti informano se nel cluster si verifica un evento sospetto.

Disabilitazione del monitoraggio

gcloud

Per disabilitare il monitoraggio per un cluster esistente, esegui il comando seguente, in cui [CLUSTER_NAME] è il nome del cluster.

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

Se esegui Cloud Operations for GKE nel tuo cluster, devi disabilitare sia il monitoraggio sia 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 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 Monitoring su Disattivato.

  4. Fai clic su Salva.

Passaggi successivi