Logging e monitoraggio

GKE On-Prem include diverse opzioni per il logging e il monitoraggio dei cluster, inclusi i servizi gestiti basati su cloud, gli strumenti open source e la convalida convalidata con soluzioni commerciali di terze parti. In questa pagina sono illustrate queste opzioni e alcune indicazioni di base per la selezione della soluzione appropriata per il tuo ambiente.

Opzioni per GKE On-Prem

Sono disponibili diverse opzioni di logging e monitoraggio per i tuoi cluster GKE on-prem:

  • Cloud Logging e Cloud Monitoring, abilitati dagli agenti in-cluster di cui è stato eseguito il deployment con GKE On-Prem.
  • Prometheus e Grafana, disattivato per impostazione predefinita.
  • Configurazioni convalidate con soluzioni di terze parti.

Cloud Logging e Cloud Monitoring

La suite operativa di Google Cloud è la soluzione integrata di osservabilità per Google Cloud. Offre una soluzione di logging completamente gestita, raccolta di metriche, monitoraggio, creazione di dashboard e avvisi. Cloud Monitoring monitora i cluster GKE on-prem in modo simile ai cluster GKE basati su cloud.

Gli agenti in-cluster possono essere configurati per l'ambito di monitoraggio e logging, nonché per il livello di metriche raccolte:

  • L'ambito del logging e del monitoraggio può essere impostato solo su componenti di sistema (impostazione predefinita) o su applicazioni e componenti di sistema
  • Il livello di metriche raccolte può essere configurato per un insieme ottimizzato di metriche o per le metriche complete

Per ulteriori informazioni, consulta Configurazione degli agenti Stackdriver per Anthos clusters on VMware in questa pagina.

Logging e Monitoring rappresentano una soluzione ideale per i clienti che desiderano un'unica soluzione di osservabilità basata su cloud, potente e facile da configurare. Consigliamo vivamente il logging e il monitoraggio quando i carichi di lavoro vengono eseguiti solo su GKE On-Prem o i carichi di lavoro su GKE e GKE On-Prem. Per le applicazioni con componenti in esecuzione su GKE on-prem e con un'infrastruttura tradizionale on-premise, potresti prendere in considerazione altre soluzioni per una visione end-to-end di queste applicazioni.

  • Per maggiori dettagli sull'architettura, sulla configurazione e sui dati che vengono replicati per impostazione predefinita nel tuo progetto Google Cloud per GKE On-Prem, consulta la sezione Come funziona Logging e Monitoring per GKE On-Prem.

  • Per ulteriori informazioni su Logging, consulta la documentazione di Cloud Logging.

  • Per ulteriori informazioni su Monitoring, consulta la documentazione di Cloud Monitoring.

Prometheus e Grafana

Prometheus e Grafana sono due popolari prodotti di monitoraggio open source:

  • Prometheus raccoglie le metriche di applicazione e di sistema.

  • Alertmanager consente di inviare avvisi con diversi meccanismi di avviso.

  • Grafana è uno strumento di controllo.

Prometheus e Grafana possono essere attivati su ogni cluster di amministrazione e cluster utente. Prometheus e Grafana sono consigliati per i team applicativi con precedenti esperienze con questi prodotti o per i team operativi che preferiscono conservare le metriche delle applicazioni all'interno del cluster e per risolvere i problemi in caso di interruzione della connettività di rete.

Soluzioni di terze parti

Google ha collaborato con diversi provider di soluzioni di monitoraggio e logging di terze parti per aiutare i propri prodotti a funzionare al meglio con GKE On-Prem. inclusi Datadog, Elastic e Splunk. In futuro verranno aggiunte altre terze parti convalidate.

Per utilizzare soluzioni di terze parti con GKE On-Prem, sono disponibili le seguenti guide di soluzione:

Come funzionano Logging e Monitoring per GKE On-Prem

Gli agenti di logging e metriche vengono installati e attivati in ogni cluster quando crei un nuovo cluster di amministrazione o utente.

Gli agenti Stackdriver includono diversi componenti in ogni cluster:

  • Operatore Stackdriver (stackdriver-operator-*). Gestisce il ciclo di vita di tutti gli altri agenti Stackdriver di cui è stato eseguito il deployment nel cluster.

  • Risorsa personalizzata di Stackdriver. Una risorsa creata automaticamente durante il processo di installazione on-prem di GKE; gli utenti possono modificare in qualsiasi momento la risorsa personalizzata per aggiornare valori come ID progetto, nome del cluster e località del cluster.

  • Aggregatore di log Stackdriver (stackdriver-log-aggregator-*). Un StatefulSet Fluentd che invia i log all'API Cloud Logging; se non è possibile inviare log, l'aggregatore di log esegue il buffer delle voci di log fino a 200 GB e tenta di inviarli di nuovo per un massimo di 24 ore. Se il buffer si esaurisce o se l'aggregatore di log non riesce a raggiungere l'API Logging per più di 24 ore, i log vengono eliminati.

  • Stackdriver Log Forwarder (stackdriver-log-forwarder-*). Un daemonset Flubebit che inoltra i log da ogni macchina all'aggregatore di log Stackdriver.

  • Raccoglitore Stackdriver Metrics (stackdriver-prometheus-k8s-). Un Prometheus e Sidecar StatefulSet di Stackdriver Prometheus che invia metriche Prometheus all'API Cloud Logging.

  • Stackdriver Metadata Collector (stackdriver-metadata-agent-). Un deployment che invia metadati per risorse Kubernetes come pod, deployment o nodi all'API Stackdriver Resource Metadata; questi dati vengono utilizzati per arricchire le query delle metriche consentendo di eseguire query in base al nome del deployment, al nome del nodo o anche al nome del servizio Kubernetes.

Per visualizzare tutti gli agenti installati da Stackdriver, esegui questo comando:

  kubectl -n kube-system get pods | grep stackdriver

L'output di questo comando è simile al seguente:

stackdriver-log-aggregator-0                  1/1     Running   0   4h31m
stackdriver-log-aggregator-1                  1/1     Running   0   4h28m
stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m
stackdriver-prometheus-k8s-0                  2/2     Running   0   4h31m

Configurazione degli agenti Stackdriver per GKE On-Prem

Gli agenti Stackdriver installati con GKE On-Prem raccolgono dati sui componenti di sistema, in base alle impostazioni e alla configurazione, allo scopo di gestire e risolvere i problemi con i cluster GKE On-Prem.

Solo componenti di sistema (ambito predefinito)

Al momento dell'installazione, gli agenti Stackdriver raccolgono log e metriche, inclusi dettagli sulle prestazioni (ad esempio utilizzo della CPU e memoria), e metadati simili, per i componenti di sistema forniti da Google. Includono tutti i carichi di lavoro nel cluster di amministrazione e per i cluster utente, i carichi di lavoro negli spazi dei nomi kube-system, gke-system, gke-connect, istio-system e config-management-system. Gli agenti Stackdriver possono essere configurati o disabilitati come descritto nelle seguenti sezioni.

L'ambito dei log e delle metriche raccolti può essere esteso per includere anche le applicazioni. Per istruzioni su come abilitare il logging e il monitoraggio delle applicazioni, consulta Abilitazione di Logging e Monitoring per le applicazioni utente.

Metriche ottimizzate (metriche predefinite)

Per impostazione predefinita, gli agenti delle metriche in esecuzione nel cluster raccolgono e segnalano un insieme ottimizzato di metriche di container e kubelet alla suite operativa di Google Cloud (in precedenza Stackdriver). Per raccogliere questo insieme di metriche ottimizzate sono necessarie meno risorse, migliorando le prestazioni e la scalabilità in generale. Ciò è particolarmente importante per le metriche a livello di container, a causa dell'elevata quantità di oggetti da monitorare.

Per disabilitare le metriche ottimizzate (non consigliato), imposta il campo optimizedMetrics su false nella risorsa personalizzata Stackdriver. Per ulteriori informazioni sulla modifica della risorsa personalizzata Stackdriver, consulta Configurazione delle risorse dei componenti Stackdriver. Tutte le metriche, incluse quelle escluse per impostazione predefinita, sono descritte nelle metriche di Anthos.

Stackdriver disabilitato

Gli agenti Stackdriver possono essere disattivati completamente eliminando la risorsa personalizzata Stackdriver. Prima di disattivare Stackdriver, consulta la pagina di assistenza per i dettagli sull'impatto degli SLA dell'assistenza Google Cloud.

Per disabilitare Stackdriver per GKE On-Prem:

kubectl -n kube-system delete stackdriver stackdriver

Gli agenti Stackdriver acquisiscono i dati archiviati localmente e sono soggetti alla configurazione di archiviazione e conservazione. I dati vengono replicati nel progetto Google Cloud specificato al momento dell'installazione utilizzando un account di servizio autorizzato a scrivere dati nel progetto. Gli agenti Stackdriver possono essere disabilitati in qualsiasi momento, come descritto in precedenza. I dati raccolti dagli agenti Stackdriver possono essere gestiti ed eliminati come qualsiasi altro dato di metrica e log, come descritto nella documentazione di Cloud Monitoring.

Requisiti di configurazione per Logging e Monitoring

Per utilizzare Logging e Monitoring con un cluster, devi configurare il progetto Google Cloud in cui vuoi visualizzare i log e le metriche. Questo progetto Google Cloud è chiamato progetto di monitoraggio del logging.

  1. Abilita le API seguenti nel tuo progetto di monitoraggio del logging:

  2. Concedi i seguenti ruoli IAM al tuo account di servizio di monitoraggio dei log nel progetto di monitoraggio dei log.

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Prezzi

Non sono previsti costi per i log di sistema e le metriche di Anthos.

In un cluster GKE On-Prem, i log e le metriche di sistema Anthos includono:

  • Log e metriche di tutti i componenti in un cluster di amministrazione
  • Log e metriche dei componenti nei seguenti spazi dei nomi di un cluster utente: kube-system, gke-system, gke-connect, knative-serving, istio-system, monitoring-system, config-management-system, gatekeeper-system, cnrm-system

Per ulteriori informazioni, consulta Prezzi per la suite operativa di Google Cloud.

Per scoprire di più sul credito per le metriche di Cloud Logging, contatta il team di vendita per i prezzi.

Come funzionano Prometheus e Grafana per GKE On-Prem

Ogni cluster GKE On-Prem viene creato con Prometheus e Grafana disabilitati per impostazione predefinita. Puoi seguire la guida all'installazione per abilitarle.

Il server Prometheus è configurato in una configurazione a disponibilità elevata con due repliche in esecuzione su due nodi separati. I requisiti delle risorse vengono adeguati per supportare i cluster che eseguono fino a cinque nodi e ciascuno gestisce fino a 30 pod che gestiscono metriche personalizzate. Prometheus ha un PersistentVolume dedicato con spazio su disco preallocato per adattarsi ai dati per un periodo di conservazione di quattro giorni più un buffer di sicurezza aggiuntivo.

Il piano di controllo dell'amministratore e ogni cluster utente dispone di uno stack di monitoraggio dedicato che puoi configurare in modo indipendente. Ciascun amministratore e cluster utente include uno stack di monitoraggio che offre un set completo di funzionalità: Prometheus Server per il monitoraggio, Grafana per l'osservabilità e Prometheus Alertmanager per gli avvisi.

Tutti gli endpoint di monitoraggio, i dati delle metriche trasferiti e le API di monitoraggio sono protetti con i componenti Istio utilizzando le regole mTLS e RBAC. L'accesso ai dati di monitoraggio è limitato solo agli amministratori del cluster.

Metriche raccolte da Prometheus

Prometheus raccoglie le seguenti metriche e metadati dal piano di controllo dell'amministratore e dai cluster utente:

  • Utilizzo delle risorse, come l'utilizzo della CPU su pod e nodi.
  • le metriche del piano di controllo Kubernetes.
  • Metriche dei componenti aggiuntivi e dei componenti di sistema di Kubernetes in esecuzione su nodi, come kubelet.
  • Stato del cluster, ad esempio l'integrità dei pod in un deployment.
  • Metriche dell'applicazione.
  • Metriche delle macchine, come rete, entropia e inodi.

Monitoraggio multi-cluster

L'istanza Prometheus e Grafana installata nel cluster di amministrazione è appositamente configurata per fornire insight sull'intera istanza GKE On-Prem, inclusi il cluster di amministrazione e ogni cluster utente. In questo modo, puoi:

  • Utilizza una dashboard Grafana per accedere alle metriche di tutti i cluster utente e dei cluster di amministrazione.
  • Visualizzare le metriche dei singoli cluster utente nelle dashboard di Grafana; le metriche sono disponibili per le query dirette alla massima risoluzione.
  • Accedi alle metriche dei carichi di lavoro e a livello di nodo dei cluster utente per query, dashboard e avvisi aggregati (le metriche del carico di lavoro sono limitate ai carichi di lavoro in esecuzione nello spazio dei nomi di kube-system).
  • Configurare avvisi per cluster specifici.

Passaggi successivi