Sdílet prostřednictvím


Monitorování metrik kontroleru příchozího přenosu dat nginx v doplňku směrování aplikací pomocí nástroje Prometheus v Grafana (Preview)

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 pro směrování aplikací zveřejňuje koncový bod metriky Prometheus na /metrics portu 10254.

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na samoobslužné bázi. Verze Preview jsou poskytovány "tak, jak jsou" a "dostupné", a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview AKS jsou částečně pokryty zákaznickou podporou na základě maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:

Požadavky

Ověření koncového bodu metrik

Pokud chcete ověřit, že se metriky shromažďují, můžete nastavit port přesměrovaný na jeden z podů kontroleru ingress-nginx.

kubectl get pods -n app-routing-system
NAME                            READY   STATUS    RESTARTS   AGE
external-dns-667d54c44b-jmsxm   1/1     Running   0          4d6h
nginx-657bb8cdcf-qllmx          1/1     Running   0          4d6h
nginx-657bb8cdcf-wgcr7          1/1     Running   0          4d6h

Teď přesměrujte místní port na port 10254 na jednom z podů nginx.

kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :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 a Azure Managed Grafana pomocí Container Insights

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 a odeslal shromážděné metriky do instance Azure Managed Grafana.

Povolení výstřižků na základě poznámek podů

Po aktualizaci clusteru pomocí agenta Azure Monitoru je potřeba nakonfigurovat agenta tak, aby povoloval výstřižky na základě poznámek podů, které se přidají do podů ingress-nginx. Jedním ze způsobů, jak toto nastavení nastavit, je v objektu ama-metrics-settings-configmap ConfigMap v kube-system oboru názvů.

Upozornění

Tím nahradíte existující ama-metrics-settings-configmap objekt ConfigMap v souboru kube-system. Pokud už máte konfiguraci, můžete ji zálohovat nebo sloučit s touto konfigurací.

Existující objekt ConfigMap můžete zálohovat ama-metrics-settings-config spuštěním příkazu kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml

Následující konfigurace nastaví podannotationnamespaceregex parametr na .* výstřižky všech oborů názvů.

kubectl apply -f - <<EOF
kind: ConfigMap
apiVersion: v1
metadata:
  name: ama-metrics-settings-configmap
  namespace: kube-system
data:
  schema-version:
    #string.used by agent to parse config. supported versions are {v1}. Configs with other schema versions will be rejected by the agent.
    v1
  config-version:
    #string.used by customer to keep track of this config file's version in their source control/repository (max allowed 10 chars, other chars will be truncated)
    ver1
  prometheus-collector-settings: |-
    cluster_alias = ""
  default-scrape-settings-enabled: |-
    kubelet = true
    coredns = false
    cadvisor = true
    kubeproxy = false
    apiserver = false
    kubestate = true
    nodeexporter = true
    windowsexporter = false
    windowskubeproxy = false
    kappiebasic = true
    prometheuscollectorhealth = false
  # Regex for which namespaces to scrape through pod annotation based scraping.
  # This is none by default. Use '.*' to scrape all namespaces of annotated pods.
  pod-annotation-based-scraping: |-
    podannotationnamespaceregex = ".*"
  default-targets-metrics-keep-list: |-
    kubelet = ""
    coredns = ""
    cadvisor = ""
    kubeproxy = ""
    apiserver = ""
    kubestate = ""
    nodeexporter = ""
    windowsexporter = ""
    windowskubeproxy = ""
    podannotations = ""
    kappiebasic = ""
    minimalingestionprofile = true
  default-targets-scrape-interval-settings: |-
    kubelet = "30s"
    coredns = "30s"
    cadvisor = "30s"
    kubeproxy = "30s"
    apiserver = "30s"
    kubestate = "30s"
    nodeexporter = "30s"
    windowsexporter = "30s"
    windowskubeproxy = "30s"
    kappiebasic = "30s"
    prometheuscollectorhealth = "30s"
    podannotations = "30s"
  debug-mode: |-
    enabled = false
EOF

Za několik minut ama-metrics by se pody v kube-system oboru názvů měly restartovat a vyzvednout 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 kontroleru příchozího přenosu dat -nginx
  • Řídicí panel výkonu zpracování žádostí

Řídicí panel kontroleru příchozího přenosu dat -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 zobrazí také doby odezvy percentilu P50, P95 a P99 příchozího přenosu dat a jejich propustnosti.

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 s řídicím panelem zpracování požadavků příchozího přenosu dat -nginx na Grafana

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