Condividi tramite


Monitorare le metriche del controller ingress-nginx nell'add-on di routing dell'applicazione utilizzando Prometheus e Grafana.

Attenzione

Kubernetes SIG Network e il Security Response Committee hanno annunciato il ritiro imminente del progetto NGINX in ingresso, con la manutenzione che termina a marzo 2026. Attualmente non è necessaria alcuna azione immediata per i cluster AKS che utilizzano il componente aggiuntivo di routing delle applicazioni con NGINX. Microsoft fornirà il supporto ufficiale per le patch di sicurezza critiche per le risorse di ingresso NGINX per il routing delle applicazioni fino a novembre 2026.

AKS è in linea con Kubernetes upstream passando a Gateway API come standard a lungo termine per la gestione del traffico L7 e degli ingressi. È consigliabile iniziare a pianificare il percorso di migrazione in base alla configurazione corrente:

Il controller ingress-nginx nel componente aggiuntivo di routing dell'applicazione espone molte metriche per le richieste, il processo nginx e il controller che possono essere utili per analizzare le prestazioni e l'utilizzo dell'applicazione.

Il componente aggiuntivo di instradamento dell'applicazione espone l'endpoint delle metriche Prometheus di /metrics sulla porta 10254 e un servizio privato nginx-metrics.

Prerequisiti

Convalida dell'endpoint delle metriche

Per verificare che le metriche vengano raccolte, è possibile configurare un port forward da una porta locale alla porta 10254 nel nginx-metrics servizio.

kubectl port-forward -n app-routing-system service/nginx-metrics :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254

Prendere nota della porta locale (43307 in questo caso) e aprire http://localhost:43307/metrics nel browser. Verrà visualizzato il caricamento delle metriche del controller ingress-nginx.

Screenshot delle metriche di Prometheus nel browser.

È ora possibile terminare il processo port-forward per chiudere l'inoltro.

Configurazione del servizio gestito di Monitoraggio di Azure per Prometheus

Il servizio gestito di Monitoraggio di Azure per Prometheus è un servizio compatibile con Prometheus completamente gestito che supporta funzionalità standard del settore, ad esempio PromQL, dashboard Grafana e avvisi di Prometheus. Questo servizio richiede la configurazione dei componenti aggiuntivi delle metriche per l'agente di Monitoraggio di Azure, che invia i dati a Prometheus. Se il cluster non è configurato con il componente aggiuntivo, è possibile seguire questo articolo per configurare il cluster del servizio Azure Kubernetes per inviare dati al servizio gestito di Monitoraggio di Azure per Prometheus.

Abilitare lo scorporo basato su Monitoraggio di servizio

Dopo aver aggiornato il cluster con l'agente di Monitoraggio di Azure, è necessario configurare l'agente per abilitare l'eliminazione dell'endpoint delle metriche. A tale scopo, è possibile creare un pod o un monitoraggio del servizio .

Di seguito viene creata una metrica di scorporo di Monitoraggio di servizio dal controller ingress-nginx distribuito dal componente aggiuntivo di instradamento dell'applicazione.

kubectl apply -f - <<EOF
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: nginx-monitor
  namespace: app-routing-system
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/component: ingress-controller
      app.kubernetes.io/managed-by: aks-app-routing-operator
      app.kubernetes.io/name: nginx
  endpoints:
  - port: prometheus
EOF

In pochi minuti, i pod ama-metrics nello spazio dei nomi kube-system devono riavviarsi e selezionare la nuova configurazione.

Esaminare la visualizzazione delle metriche in Grafana con gestione Azure

Dopo aver configurato il servizio gestito di Monitoraggio di Azure per Prometheus e Grafana con gestione Azure, è necessario accedere all'istanza di Grafana gestita.

Esistono due dashboard ufficiali di ingress-nginx che è possibile scaricare e importare nell'istanza di Grafana:

  • Dashboard del controller ingress-nginx
  • Dashboard delle prestazioni di gestione delle richieste

Dashboard del controller ingress-nginx

Questo dashboard offre visibilità del volume delle richieste, delle connessioni, delle percentuali di esito positivo, dei ricaricamenti della configurazione e delle configurazioni non sincronizzate. È anche possibile usarlo per visualizzare la pressione di I/O di rete, la memoria e l'uso della CPU del controller in ingresso. Infine, mostra anche i tempi di risposta percentile P50, P95 e P99 dei dati in ingresso e la velocità effettiva.

È possibile scaricare questo dashboard da GitHub.

Screenshot di un browser che mostra il dashboard di ingresso mediante NGINX in Grafana.

Dashboard delle prestazioni di gestione delle richieste

Questo dashboard offre visibilità sulle prestazioni di gestione delle richieste delle diverse destinazioni upstream in ingresso, ovvero gli endpoint delle applicazioni a cui il controller di ingresso sta inoltrando il traffico. Mostra il percentile P50, P95 e P99 del numero totale di richieste e i tempi di risposta upstream. È anche possibile visualizzare aggregazioni di errori di richiesta e latenza. Usare questo dashboard per esaminare e migliorare le prestazioni e la scalabilità delle applicazioni.

È possibile scaricare questo dashboard da GitHub.

Schermata di un browser che mostra il dashboard delle prestazioni di gestione delle richieste di ingresso mediante NGINX in Grafana.

Importazione di un dashboard

Per importare un dashboard Grafana, espandere il menu a sinistra e fare clic su Importa da Dashboard.

Screenshot di un browser che mostra l'istanza di Grafana con il dashboard di importazione evidenziato.

Caricare quindi il file del dashboard desiderato e fare clic su Carica.

Screenshot di un browser che mostra la finestra di dialogo del dashboard di importazione dell'istanza di Grafana.

Passaggi successivi