Monitoraggio e registrazione dei dati
Si applica a: AKS su Azure Locale 22H2, AKS su Windows Server
Questo articolo descrive come monitorare la distribuzione del servizio Azure Kubernetes e raccogliere i dati di registrazione nel servizio Azure Kubernetes abilitati da Azure Arc. Si apprenderà come configurare e accedere al monitoraggio locale usando Prometheus
e Graphana
e come raccogliere e visualizzare i log usando Elasticsearch
, Fluent Bit
e Kibana
(EFK).
Sono disponibili due tipi di soluzioni di monitoraggio e registrazione, come descritto nella tabella seguente:
Soluzione | Connettività di Azure | Supporto e servizio | Costo | Distribuzione |
---|---|---|---|---|
Monitoraggio di Azure | Richiede la connessione del cluster Kubernetes ad Azure tramite Azure Arc per Kubernetes. | Supporto completo e manutenzione di Microsoft. | Richiede l'iscrizione al servizio Monitoraggio di Azure. | Usare Azure Arc per il monitoraggio dei cluster . |
Monitoraggio e registrazione di log in sede | Non richiede la connettività di Azure. | Supportato come software open source da Microsoft (senza contratto di supporto o contratti di servizio), dalla community e/o dai fornitori esterni. | Dipendente dal fornitore. | Orientato al cliente. Vedere Monitorare i cluster usando il monitoraggio locale. |
Per usare Monitoraggio di Azure con i cluster Kubernetes, vedere la panoramica di Monitoraggio di Azure .
Usare il monitoraggio locale
È fondamentale monitorare l'integrità, le prestazioni e l'utilizzo delle risorse dei nodi e dei carichi di lavoro del piano di controllo nel cluster durante l'esecuzione di app nell'ambiente di produzione. La soluzione di monitoraggio consigliata include i due strumenti seguenti:
- Prometheus è un toolkit di monitoraggio e avvisi che è possibile usare per il monitoraggio dei carichi di lavoro in contenitori. Prometheus funziona con diversi tipi di agenti di raccolta e agenti per raccogliere le metriche e archiviarle in un database in cui è possibile eseguire query sui dati e visualizzare i report. AKS Arc semplifica la distribuzione di Prometheus, descritto più avanti in questo articolo.
- Grafana è uno strumento usato per visualizzare, eseguire query e visualizzare le metriche nei dashboard di Grafana. È anche possibile configurare Grafana per l'uso di Prometheus come origine dati. È necessario disporre di una propria copia con licenza di Grafana con AKS Arc.
Panoramica della soluzione di monitoraggio
Nell'ambito della soluzione Prometheus nell'Azure Kubernetes Service abilitato da Arc, i seguenti componenti vengono distribuiti e configurati automaticamente.
- Operatore Prometheus
- Prometheus
- metriche dello stato di Kube
- di esportazione di nodi
- Esportatore di Windows
La distribuzione si basa sul chart Helm disponibile pubblicamente Kube-Prometheus-stack, che viene esteso per supportare il Windows exporter e proteggere la raccolta delle metriche tra Prometheus e gli agenti. Dopo aver distribuito la soluzione Prometheus, l'utilità di esportazione node viene eseguita in ogni nodo Linux e l'utilità di esportazione di Windows viene eseguita in ogni nodo di Windows.
Nota
Poiché l'operatore Prometheus, Prometheus e i componenti delle metriche dello stato di Kubernetes sono supportati solo su Linux, è necessario effettuare il provisioning di almeno un nodo Linux nel cluster AKS per implementare questa soluzione.
Gli oggetti e gli endpoint recuperati dalla soluzione Prometheus includono gli elementi seguenti.
- Metriche di stato kube per raccogliere diverse metriche fornite da Kubernetes
- API server Kubernetes
- Kubelet
- Node exporter per raccogliere le metriche dai nodi Linux
- Esportatore di Windows per raccogliere le metriche dei nodi Windows
Per visualizzare i dashboard di Grafana disponibili in AKS Arc, vedere dashboard di Grafana disponibili in AKS Arc.
Distribuire una soluzione di monitoraggio con PowerShell
Questa sezione descrive le due opzioni che è possibile usare per distribuire il monitoraggio in un cluster del carico di lavoro.
Opzione 1: Distribuire la soluzione di monitoraggio durante la creazione del cluster del carico di lavoro
Per abilitare il monitoraggio, specificare il parametro -enableMonitoring
quando si usa New-AksHciCluster per creare il cluster del carico di lavoro, come illustrato nell'esempio seguente:
New-AksHciCluster -name mynewcluster -enableMonitoring
Il monitoraggio viene installato con la configurazione predefinita seguente:
- Le dimensioni del volume permanente che viene fornito per archiviare la metrica (
storageSizeGB
) sono 100 GB. - Il tempo di conservazione per le metriche raccolte (
retentionTimeHours
) è di 240 ore (o 10 giorni).
Opzione 2: Distribuire la soluzione di monitoraggio in un cluster del carico di lavoro esistente
Eseguire il comando Install-AksHciMonitoring per distribuire la soluzione di monitoraggio in un cluster del carico di lavoro esistente, come indicato di seguito:
Install-AksHciMonitoring -Name mycluster -storageSizeGB 100 -retentionTimeHours 240
Il parametro -storageSizeGB
imposta le dimensioni del volume permanente di cui viene effettuato il provisioning per archiviare le metriche e il parametro -retentionTimeHours
imposta la quantità di tempo di conservazione delle metriche raccolte.
La soluzione di monitoraggio viene installata in uno spazio dei nomi separato denominato monitoring
e usa un oggetto StorageClass denominato monitoring-sc
. Prometheus è esposto su un endpoint interno accessibile solo all'interno del cluster al http://akshci-monitoring-prometheus-svc.monitoring:9090
.
Disinstallare la soluzione di monitoraggio con PowerShell
Eseguire il comando di PowerShell Uninstall-AksHciMonitoring
per disinstallare la soluzione di monitoraggio di AKS Arc, come indicato di seguito:
Uninstall-AksHciMonitoring -Name <target cluster name>
Il processo di disinstallazione rimuove tutti gli elementi, incluso lo spazio dei nomi, la classe di archiviazione e i dati e le metriche effettivi del volume persistente.
Distribuire Grafana e configurarlo per l'uso di Prometheus
È possibile seguire qualsiasi indicazione per la distribuzione di Grafana disponibile pubblicamente. È anche possibile visualizzare le linee guida per la distribuzione di Microsoft per usare Grafana, che illustra in dettaglio come distribuire e configurare Grafana per connetterlo a un'istanza di Prometheus di Azure Kubernetes Service (AKS). Questa pagina di GitHub descrive anche come aggiungere le dashboard di Grafana che Microsoft rende disponibili per AKS abilitato da Arc.
Registrazione in sede
La registrazione è fondamentale per la risoluzione dei problemi e la diagnostica. La soluzione di registrazione in AKS Arc si basa su Elasticsearch, Fluent Bit e Kibana (EFK). Questi componenti vengono distribuiti come contenitori:
- Fluent Bit è il processore di log e il server d'inoltro che raccoglie dati e log da origini diverse. Quindi formatta, unifica e li archivia in Elasticsearch.
- Elasticsearch è un motore di ricerca e analisi distribuito in grado di archiviare centralmente i log per ricerche rapide e analisi dei dati.
- Kibana offre visualizzazioni interattive in un dashboard Web. Questo strumento consente di visualizzare ed eseguire query sui log archiviati in Elasticsearch, per poi rappresentarli tramite grafici e pannelli di controllo.
Per configurare una soluzione di registrazione locale, vedere la procedura per configurare la registrazione per accedere a Kibana. Questo articolo include tutti i componenti necessari per raccogliere, aggregare ed eseguire query sui log dei contenitori nel cluster.
Per i passaggi di configurazione avanzati, vedere logging di Windows.