Sdílet prostřednictvím


Monitorování metrik řadiče ingress-nginx v rámci doplňku směrování aplikací pomocí Prometheus a Grafana

Kontroler ingress-nginx v doplňku směrování aplikace zveřejňuje mnoho metrik pro požadavky, proces nginx a kontroler, který může být užitečný při analýze výkonu a využití vaší aplikace.

Doplněk směrování aplikace zveřejňuje koncový bod metrik Prometheus na /metrics portu 10254 a privátní službě nginx-metrics.

Požadavky

  • Cluster Azure Kubernetes Service (AKS) s doplňkem směrování aplikací povoleným.
  • Instanci Prometheus, jako je spravovaná služba Azure Monitor pro Prometheus.

Ověření koncového bodu metrik

Pokud chcete ověřit, že se metriky shromažďují, můžete nastavit přesměrování portu z místního portu na port 10254 na službě nginx-metrics.

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

Poznamenejte si místní port (43307 v tomto případě) a otevřete http://localhost:43307/metrics ho v prohlížeči. Měli byste vidět načítání metrik kontroleru ingress-nginx.

Snímek obrazovky s metrikami Prometheus v prohlížeči

Teď můžete proces ukončit port-forward a ukončit tak předávání.

Konfigurace spravované služby Azure Monitor pro Prometheus

Spravovaná služba Azure Monitoru pro Prometheus je plně spravovaná služba kompatibilní s Prometheus, která podporuje standardní funkce odvětví, jako jsou řídicí panely PromQL, Grafana a výstrahy Prometheus. Tato služba vyžaduje konfiguraci doplňku metrik pro agenta Azure Monitoru, který odesílá data do prometheus. Pokud váš cluster není nakonfigurovaný s doplňkem, můžete podle tohoto článku nakonfigurovat cluster Azure Kubernetes Service (AKS) tak, aby odesílal data do spravované služby Azure Monitor pro Prometheus.

Zapnutí získávání dat na základě monitorování služeb

Jakmile je váš cluster aktualizován pomocí agenta Azure Monitor, je třeba agenta nakonfigurovat tak, aby umožnil scrapování endpointu metrik. K tomuto účelu můžete vytvořit Pod nebo Service Monitor.

Následující příklad vytvoří metriky sklízené Service Monitorem z kontroleru ingress-nginx, který je nasazen pomocí doplňku pro směrování aplikací.

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

Za několik minut by se pody v rámci oboru názvů ama-metrics měly restartovat a přijmout novou konfiguraci.

Kontrola vizualizace metrik ve službě Azure Managed Grafana

Teď, když máte nakonfigurovanou spravovanou službu Azure Monitor pro Prometheus a Azure Managed Grafana, byste měli přistupovat ke spravované instanci Grafany.

Existují dva oficiální řídicí panely ingress-nginx , které si můžete stáhnout a importovat do instance Grafana:

  • Řídicí panel kontroléru Ingress-nginx
  • Řídicí panel výkonu zpracování žádostí

Řídicí panel kontroléru Ingress-nginx

Tento řídicí panel poskytuje přehled o svazku požadavků, připojeních, úspěšnosti, opětovném načtení konfigurace a konfiguracích, které se nesynchronizují. Můžete ho také použít k zobrazení zatížení vstupně-výstupních operací sítě, paměti a procesoru kontroleru příchozího přenosu dat. Nakonec se také zobrazí doby odezvy pro přístupy u percentilu P50, P95 a P99 a jejich propustnost.

Tento řídicí panel si můžete stáhnout z GitHubu.

Snímek obrazovky prohlížeče s řídicím panelem příchozího přenosu dat a nginx v Grafana

Řídicí panel výkonu zpracování žádostí

Tento řídicí panel poskytuje přehled o výkonu zpracování požadavků různých upstreamových cílů příchozího přenosu dat, což jsou koncové body vašich aplikací, do kterých kontroler příchozího přenosu dat předává provoz. Zobrazuje percentil P50, P95 a P99 celkového počtu požadavků a upstreamových dob odezvy. Můžete také zobrazit agregace chyb požadavků a latence. Tento řídicí panel slouží ke kontrole a zlepšení výkonu a škálovatelnosti vašich aplikací.

Tento řídicí panel si můžete stáhnout z GitHubu.

Snímek obrazovky prohlížeče zobrazující panel výkonu zpracování požadavků ingress-nginx na Grafaně.

Import řídicího panelu

Pokud chcete importovat řídicí panel Grafana, rozbalte levou nabídku a v části Řídicí panely klikněte na Importovat .

Snímek obrazovky prohlížeče zobrazující instanci Grafana se zvýrazněným řídicím panelem Import

Potom nahrajte požadovaný soubor řídicího panelu a klikněte na Načíst.

Snímek obrazovky prohlížeče s dialogovým oknem importu instance Grafana

Další kroky