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 compatibilità convalidata con soluzioni commerciali di terze parti. In questa pagina vengono illustrate queste opzioni e vengono fornite alcune indicazioni di base per la selezione della soluzione appropriata per l'ambiente.

Panoramica

Sono disponibili diverse opzioni di logging e monitoraggio per i tuoi cluster GKE On-Prem:

  • Cloud Logging e Cloud Monitoring, abilitati da agenti in-cluster con deployment su GKE On-Prem.
  • Prometheus e Grafana sono attivati per impostazione predefinita nei nuovi cluster.
  • Configurazioni convalidate con soluzioni di terze parti.

Cloud Logging e Monitoring

Stackdriver è la soluzione di osservabilità integrata per Google Cloud. Offre una soluzione di logging completamente gestita, raccolta di metriche, monitoraggio, dashboard e avvisi. Stackdriver monitora i cluster GKE On-Prem in modo simile ai cluster GKE basati su cloud.

Gli agenti Stackdriver possono essere configurati con due diversi livelli di logging e monitoraggio:

  • Solo componenti di sistema (il valore predefinito).
  • Stackdriver disabilitato (prima della disattivazione), consulta la pagina di assistenza per informazioni su come Stackdriver viene utilizzato a fini di assistenza.

Stackdriver è la soluzione ideale per i clienti che desiderano un'unica soluzione di osservabilità basata su cloud, potente e facile da configurare. Stackdriver è vivamente consigliato quando esegui carichi di lavoro solo su GKE On-Prem o su carichi di lavoro su GKE e GKE On-Prem. Per le applicazioni con componenti in esecuzione su GKE On-Prem e l'infrastruttura tradizionale on-premise, puoi prendere in considerazione altre soluzioni per una visualizzazione end-to-end di tali applicazioni.

  • Consulta la sezione Stackdriver per informazioni dettagliate su architettura, configurazione e quali dati vengono replicati nel progetto Google Cloud per impostazione predefinita per GKE On-Prem.
  • Consulta le sezioni Cloud Logging e Cloud Monitoring per ulteriori dettagli su questi servizi.

Prometheus e Grafana

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

  • Prometheus raccoglie le metriche di applicazioni e sistemi.
  • Alertmanager consente di gestire gli avvisi con diversi meccanismi di avviso.
  • Grafana è uno strumento di dashboard.

Per impostazione predefinita, Prometheus e Grafana vengono eseguiti su ogni cluster di amministrazione e cluster utente. Prometheus e Grafana sono consigliati per i team applicativi con precedenti esperienze con questi prodotti oppure per i team operativi che preferiscono mantenere le metriche delle applicazioni all'interno del cluster e per la risoluzione dei problemi quando la connettività di rete viene persa.

Soluzioni di terze parti

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

Sono disponibili le seguenti guide alle soluzioni per l'utilizzo di soluzioni di terze parti con GKE On-Prem:

Come funziona Stackdriver per GKE On-Prem

Cloud Logging e Cloud Monitoring vengono installati e attivati in ogni cluster quando crei un nuovo cluster di amministrazione o di utenti.

Gli agenti Stackdriver includono diversi componenti su ciascun cluster:

  • Stackdriver Operator (stackdriver-operator-*), che gestisce il ciclo di vita per tutti gli altri agenti di Stackdriver di cui è stato eseguito il deployment nel cluster.
  • Risorsa personalizzata Stackdriver, creata automaticamente durante il processo di installazione di GKE On-Prem; gli utenti possono modificare la risorsa personalizzata in modo da aggiornare valori come ID progetto, nome del cluster e località del cluster in qualsiasi momento.
  • Stackdriver Log Aggregator (stackdriver-log-aggregator-*), uno StatefulSet Fluentd che invia i log all'API Cloud Logging, se i log non possono essere inviati, l'aggregatore di log memorizza nel buffer le voci di log, fino a 200 GB, e tenta di inviarle nuovamente per un massimo di 24 ore. Se il buffer si riempie o se l'aggregatore di log non può raggiungere l'API Logging per più di 24 ore, i log verranno eliminati.
  • Stackdriver Log Forwarder (stackdriver-log-forwarder-*), un daemonset Fluentbit che inoltra i log da ogni macchina all'aggregatore Stackdriver Log.
  • Stackdriver Metrics Collector (stackdriver-prometheus-k8s-), un oggetto Prometheus e Stackdriver Prometheus Sidecar StatefulSet che invia metriche di Prometheus all'API Cloud Logging.
  • Stackdriver Metadata Collector (stackdriver-metadata-agent-).

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

  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, al fine di gestire e risolvere i problemi con i cluster GKE On-Prem, in una delle seguenti modalità:

Solo componenti di sistema (modalità predefinita)

Al momento dell'installazione, gli agenti di Stackdriver sono configurati per impostazione predefinita per raccogliere log e metriche, inclusi dettagli sulle prestazioni (ad esempio CPU e utilizzo della memoria) e metadati simili per i componenti di sistema forniti da Google, inclusi tutti i carichi di lavoro nel cluster di amministrazione e, per i cluster utente, i carichi di lavoro negli spazi dei nomi di kube-system, gke-system, gke-connect, istio-system e config-management-system.

Stackdriver disabilitato

Gli agenti Stackdriver possono essere disabilitati completamente eliminando la risorsa personalizzata Stackdriver. Prima di disattivare Stackdriver, consulta la pagina di assistenza per i dettagli sull'impatto di questa modifica sugli 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 in base 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 in quel progetto. Gli agenti Stackdriver possono essere disattivati in qualsiasi momento, come descritto sopra, e i dati raccolti dagli agenti Stackdriver possono essere gestiti ed eliminati come qualsiasi altra metrica di log e dati, come descritto nella documentazione di Stackdriver.

Requisiti di configurazione per Stackdriver

Esistono diversi requisiti di configurazione per abilitare Stackdriver con GKE On-Prem. Questi passaggi sono inclusi nella sezione Preparazione dell'installazione elencati di seguito.

  1. È necessario creare un'area di lavoro di Cloud Logging all'interno del progetto Google Cloud. Per farlo, fai clic su Monitoring in Google Cloud Console e segui il flusso di lavoro.
  2. Devi abilitare le seguenti API Stackdriver:
    1. API Stackdriver
    2. API Cloud Monitoring
    3. API Cloud Logging
  3. Devi assegnare i seguenti ruoli IAM all'account di servizio utilizzato dagli agenti Stackdriver:
    1. logging.logWriter
    2. monitoring.metricWriter
    3. stackdriver.resourceMetadata.writer

Prezzi

Anthos include un'allocazione gratuita di Cloud Logging superiore all'allocazione gratuita standard di Cloud Logging.

Per saperne di più e per saperne di più sul merito delle 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 un'istanza Prometheus e Grafana di cui è stato eseguito il deployment per impostazione predefinita.

Il server Prometheus è impostato in una configurazione a disponibilità elevata con due repliche in esecuzione su due nodi separati. I requisiti delle risorse vengono regolati per supportare i cluster in esecuzione fino a cinque nodi, ognuno con un massimo di 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 hanno uno stack di monitoraggio dedicato che puoi configurare in modo indipendente. Ogni cluster utente e amministratore include uno stack di monitoraggio che offre un insieme 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 mediante 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, ad esempio l'utilizzo della CPU su pod e nodi.
  • 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 integrità dei pod in un deployment.
  • Metriche dell'applicazione.
  • Metriche del computer, come rete, entropia e inodi.

Monitoraggio multi-cluster

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

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