Questo documento descrive come configurare il tuo deployment Google Kubernetes Engine in modo da poter utilizzare Google Cloud Managed Service per Prometheus per raccogliere Istio, Questo documento illustra come:
- Configura Istio per segnalare le metriche.
- Configura una risorsa PodMonitoring per Managed Service per Prometheus per raccogliere le metriche esportate.
- Accedi a una dashboard in Cloud Monitoring per visualizzare le metriche.
- Configura regole di avviso per monitorare le metriche.
Queste istruzioni sono valide solo se utilizzi raccolta gestita con Managed Service per Prometheus. Se utilizzi una raccolta di cui è stato eseguito il deployment autonomo, controlla repository di codice sorgente per Istio per informazioni sull'installazione.
Queste istruzioni sono fornite a titolo di esempio e dovrebbero funzionare in la maggior parte degli ambienti Kubernetes. Se hai difficoltà a installare un un'applicazione o un esportatore a causa di criteri restrittivi di sicurezza o dell'organizzazione, ti consigliamo di consultare la documentazione open source per ricevere assistenza.
Per informazioni su Istio, consulta Istio.
Prerequisiti
Per raccogliere metriche da Istio utilizzando Managed Service per Prometheus e la raccolta gestita, il deployment deve devono soddisfare i seguenti requisiti:
- Nel cluster deve essere in esecuzione la versione di Google Kubernetes Engine 1.21.4-gke.300 o versioni successive.
- Devi eseguire Managed Service per Prometheus con la raccolta gestita abilitata. Per ulteriori informazioni, vedi Inizia a utilizzare la raccolta gestita.
Istio espone automaticamente le metriche in formato Prometheus; non devi necessariamente installarlo separatamente. Puoi eseguire i seguenti controlli per verificare che il proxy Istio è stato inserito come file collaterale e che sia Istiod, il piano di controllo Istio e Istio Proxy inviano metriche sugli endpoint previsti.
Per determinare se il proxy Istio viene inserito come file collaterale, esegui seguente, che elenca i container in esecuzione nei pod dell'applicazione:
kubectl get pod -l app=APPLICATION_NAME -n NAMESPACE_NAME -o jsonpath='{.items[0].spec.containers[*].name}'
Se vedi che i pod contengono il file collaterale
istio
nel container è stato inserito. Se il file collaterale non è iniettato, poi segui le istruzioni Istio: installazione del file collaterale.Per verificare che le metriche vengano emesse dal proxy Istio, esegui il comando il seguente comando, che ispeziona l'endpoint
/stats/prometheus
delistio
sul pod specificato:kubectl exec POD_NAME -n NAMESPACE_NAME -c istio-proxy -- curl -sS 'localhost:15090/stats/prometheus'
Se vedi metriche non elaborate di Prometheus
istio_*
eenvoy_*
, vengono emesse correttamente.Per verificare che le metriche vengano emesse in modo simile su Istio, esegui il comando il seguente comando, che ispeziona l'endpoint
/metrics
di Istiod su uno dei pod nel deploymentistiod
:kubectl exec -n istio-system deployment/istiod -- curl -sS 'localhost:15014/metrics'
Definisci una risorsa PodMonitoring
Per il rilevamento del target, l'operatore Managed Service per Prometheus richiede una risorsa PodMonitoring che corrisponda Esportatore Istio nello stesso spazio dei nomi.
Puoi utilizzare la seguente configurazione di PodMonitoring:
Istio richiede due risorse PodMonitoring separate: Una per il monitoraggio di Istiod e un'altra per il monitoraggio di Istio Sidecar proxy e gateway in entrata e in uscita. Per monitorare le metriche del proxy Istio in tutti gli spazi dei nomi nel cluster, applica il PodMonitoring diistio-proxy
a ogni spazio dei nomi o
ClusterPodMonitoring
anziché una risorsa PodMonitoring per spazio dei nomi.
Se prevedi di utilizzare Dashboard Grafana fornite dall'Istio oltre alle risorse PodMonitoring descritte in questo documento verifica di aver configurato anche Approccio di cAdvisor e Kubelet.
Per applicare le modifiche alla configurazione da un file locale, esegui questo comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Puoi anche utilizza Terraform per gestire le configurazioni.
Definisci regole e avvisi
Puoi utilizzare la seguente configurazione di Rules
per definire
e avvisi sulle metriche Istio:
Per applicare le modifiche alla configurazione da un file locale, esegui questo comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Puoi anche utilizza Terraform per gestire le configurazioni.
Per saperne di più sull'applicazione di regole al cluster, consulta Valutazione e avvisi delle regole gestite.
Questa configurazione diRules
è stata adattata dal
Regole di Istio fornite da
Fantastici avvisi Prometheus.
Puoi regolare le soglie di avviso in base alla tua applicazione.
Verificare la configurazione
Puoi utilizzare Metrics Explorer per verificare di aver configurato correttamente Esportatore Istio. Potrebbero essere necessari uno o due minuti Cloud Monitoring per importare le tue metriche.
Per verificare che le metriche siano importate:
-
Nella console Google Cloud, vai alla leaderboard Pagina Esplora metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.
- Nella barra degli strumenti della riquadro Query Builder, seleziona il pulsante con code MQL o code PromQL.
- Verifica che PromQL sia selezionato con l'opzione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti. consente di formattare la query.
- Inserisci ed esegui questa query:
sum(istio_build{cluster="CLUSTER_NAME"}) by (component)
Visualizza dashboard
L'integrazione di Cloud Monitoring include nella dashboard Panoramica di Istio Envoy Prometheus. Le dashboard vengono installate automaticamente quando configuri l'integrazione. Puoi anche visualizzare anteprime statiche delle dashboard senza installare e integrazione.
Per visualizzare una dashboard installata:
-
Nella console Google Cloud, vai alla pagina Dashboard
:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.
- Seleziona la scheda Elenco dashboard.
- Scegli la categoria Integrations (Integrazioni).
- Fai clic sul nome della dashboard, ad esempio Panoramica di Istio Envoy Prometheus.
Per visualizzare un'anteprima statica della dashboard:
-
Nella console Google Cloud, vai alla
Integrazioni pagina:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.
- Fai clic sul filtro della piattaforma di deployment Kubernetes Engine.
- Individua l'integrazione di Istio e fai clic su Visualizza dettagli.
- Seleziona la scheda Dashboard.
Risoluzione dei problemi
Per informazioni sulla risoluzione dei problemi di importazione delle metriche, consulta Problemi con la raccolta dagli esportatori in Risoluzione dei problemi lato importazione.