Megosztás a következőn keresztül:


Az alkalmazás-útválasztási bővítmény bejövő nginx vezérlőmetrikáinak monitorozása a Grafana Prometheus használatával (előzetes verzió)

Az alkalmazás-útválasztási bővítmény bejövő nginx vezérlője számos metrikát tesz elérhetővé a kérésekhez, az nginx folyamathoz és a vezérlőhöz, amelyek hasznosak lehetnek az alkalmazás teljesítményének és használatának elemzésében.

Az alkalmazás-útválasztási bővítmény elérhetővé teszi a Prometheus-metrikák végpontját /metrics az 10254-ös porton.

Fontos

Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióit részben az ügyfélszolgálat fedezi a legjobb munkamennyiség alapján. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:

Előfeltételek

A metrikák végpontjának érvényesítése

A metrikák gyűjtésének ellenőrzéséhez beállíthat egy portot az egyik bejövő nginx vezérlő podra.

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

Most továbbítsa a helyi portot az 10254-ös portra az egyik nginx podon.

kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254

Jegyezze fel a helyi portot (43307 ebben az esetben), és nyissa meg http://localhost:43307/metrics a böngészőben. Látnia kell a bejövő nginx vezérlő metrikáinak betöltését.

Screenshot of the Prometheus metrics in the browser.

Most már leállíthatja a folyamatot a port-forward továbbítás bezárásához.

Az Azure Monitor felügyelt szolgáltatás konfigurálása a Prometheushoz és az Azure Managed Grafana-hoz a Container Elemzések használatával

A Prometheushoz készült Azure Monitor felügyelt szolgáltatás egy teljes mértékben felügyelt Prometheus-kompatibilis szolgáltatás, amely támogatja az iparági szabványnak megfelelő funkciókat, például a PromQL-t, a Grafana-irányítópultokat és a Prometheus-riasztásokat. Ehhez a szolgáltatáshoz konfigurálnia kell az Azure Monitor-ügynök metrikák bővítményét, amely adatokat küld a Prometheusnak. Ha a fürt nincs konfigurálva a bővítményrel, ezt a cikket követve konfigurálhatja az Azure Kubernetes Service (AKS) fürtöt, hogy adatokat küldjön a Prometheushoz készült Azure Monitor felügyelt szolgáltatásnak, és küldje el az összegyűjtött metrikákat egy Azure Managed Grafana-példánynak.

Podjegyzetalapú kaparás engedélyezése

Miután frissítette a fürtöt az Azure Monitor-ügynökkel, konfigurálnia kell az ügynököt, hogy podjegyzetek alapján engedélyezze a kaparást, amelyeket hozzáad a bejövő nginx podokhoz. A beállítás beállításának egyik módja a ama-metrics-settings-configmap névtér ConfigMap-térképe kube-system .

Figyelem

Ez lecseréli a meglévő ama-metrics-settings-configmap ConfigMap-et a kube-system. Ha már rendelkezik konfigurációval, érdemes lehet biztonsági másolatot készítenie vagy egyesítenie ezzel a konfigurációval.

Ha létezik, biztonsági másolatot készíthet egy meglévő ama-metrics-settings-config ConfigMap-ról a kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml

Az alábbi konfiguráció úgy állítja be a podannotationnamespaceregex paramétert, hogy .* az összes névteret lekaparja.

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

Néhány perc múlva a ama-metrics névtérben lévő kube-system podok újraindulnak, és felveszik az új konfigurációt.

Metrikák vizualizációjának áttekintése az Azure Managed Grafana-ban

Most, hogy konfigurálta a Prometheushoz és az Azure Managed Grafana-hoz készült Azure Monitor felügyelt szolgáltatást, hozzá kell férnie a felügyelt Grafana-példányhoz.

Két hivatalos bejövő nginx-irányítópultot tölthet le és importálhat a Grafana-példányba:

  • Bejövőforgalom-nginx vezérlő irányítópultja
  • Kérelemkezelési teljesítmény irányítópultja

Bejövőforgalom-nginx vezérlő irányítópultja

Ez az irányítópult áttekintést nyújt a kérelmek mennyiségéről, a kapcsolatokról, a sikerességi arányokról, a konfiguráció újratöltéséről és a konfigurációk szinkronizáláson kívüli használatáról. Azt is használhatja, hogy megtekintse a hálózati IO-nyomást, a memóriát és a processzorhasználatot a bejövőforgalom-vezérlőben. Végül a P50, P95 és P99 percentilis válaszidőket és azok átviteli sebességét is megjeleníti.

Ezt az irányítópultot a GitHubról töltheti le.

Screenshot of a browser showing the ingress-nginx dashboard on Grafana.

Kérelemkezelési teljesítmény irányítópultja

Ez az irányítópult bemutatja a különböző bejövő bejövő forgalom célhelyeinek kéréskezelési teljesítményét, amelyek az alkalmazások végpontjai, amelyekre a bejövőforgalom-vezérlő továbbítja a forgalmat. A teljes kérelem és a felsőbb réteg válaszidejének P50, P95 és P99 percentilisét jeleníti meg. Megtekintheti a kéréshibák és késések összesítését is. Ezen az irányítópulton áttekintheti és javíthatja az alkalmazások teljesítményét és méretezhetőségét.

Ezt az irányítópultot a GitHubról töltheti le.

Screenshot of a browser showing the ingress-nginx request handling performance dashboard on Grafana.

Irányítópult importálása

Grafana-irányítópult importálásához bontsa ki a bal oldali menüt, és kattintson az Importálás elemre az Irányítópultok területen.

Screenshot of a browser showing the Grafana instance with Import dashboard highlighted.

Ezután töltse fel a kívánt irányítópultfájlt, és kattintson a Betöltés gombra.

Screenshot of a browser showing the Grafana instance import dashboard dialog.

Következő lépések

  • A számítási feladatok skálázását a Prometheussal lekaparott bejövő metrikák használatával konfigurálhatja a Kubernetes eseményvezérelt automatikus skálázási (KEDA) használatával. További információ a KEDA és az AKS integrálásáról.
  • Hozzon létre és futtasson egy terheléstesztet az Azure Load Testing használatával a számítási feladatok teljesítményének teszteléséhez és az alkalmazások méretezhetőségének optimalizálásához.