共用方式為


使用 Prometheus 和 Grafana 監控應用程式路由附加元件中的 ingress-nginx 控制器指標

應用程式路由附加元件中的 ingress-nginx 控制器會公開許多要求、nginx 程序和控制器的計量,可協助分析應用程式的效能和使用。

應用程式路由附加元件會在連接埠 10254 上的 /metrics 公開 Prometheus 計量端點和私人服務 nginx-metrics

先決條件

驗證計量端點

若要驗證是否正在收集的計量,您可以設定從本機連接埠到 nginx-metrics 服務上的連接埠 10254 的連接埠轉送。

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

請記下本機連接埠 (在此案例中為 43307),然後在瀏覽器中開啟 http://localhost:43307/metrics。 您應該會看到 ingress-nginx 控制器計量載入。

瀏覽器中 Prometheus 計量的螢幕擷取畫面。

您現在可以終止 port-forward 程序以關閉轉送。

設定 Prometheus 的 Azure 監視器受控服務

適用於 Prometheus 的 Azure 監視器受管理服務是完全受控的 Prometheus 相容服務,支援業界標準功能,例如 PromQL、Grafana 儀表板,以及 Prometheus 警示。 此服務需要設定 Azure 監視器代理程式的計量附加元件,將資料傳送至 Prometheus。 如果您的叢集未設定附加元件,您可以遵循本文來設定 Azure Kubernetes Service (AKS) 叢集,以將資料傳送至適用於 Prometheus 的 Azure 監視器受控服務。

啟用基於服務監視器的數據刮取

使用 Azure 監視器代理程式更新叢集之後,您必須設定代理程式,以啟用抓取計量端點。 您可以 建立 Pod 或服務監視器 來完成此操作。

以下內容從應用程式路由附加元件部署的 ingress-nginx 控制器中建立了一個服務監視器抓取計量。

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

幾分鐘後,ama-metrics 命名空間中的 kube-system Pod 應該會重新啟動並挑選新的設定。

檢閱 Azure 受控 Grafana 中計量的視覺效果

既然您已設定適用於 Prometheus 的 Azure 監視器受管理服務和 Azure 受控 Grafana,則應存取您的受控 Grafana 執行個體

您可以下載並匯入 Grafana 執行個體的官方 ingress-nginx 儀表板有兩個:

  • Ingress-nginx 控制器儀表板
  • 要求處理效能儀表板

Ingress-nginx 控制器儀表板

此儀表板可讓您查看要求量、連線數、成功率、設定重新載入以及設定不同步的情況。您也可以用它來檢視輸入控制器的網路 IO 壓力、記憶體和 CPU 使用情況。 最後,它還可以顯示輸入的 P50、P95 和 P99 百分位數回應時間及其輸送量。

您可以從 GitHub 下載此儀表板。

瀏覽器的螢幕擷取畫面,其中顯示 Grafana 上的輸入 nginx 儀表板。

要求處理效能儀表板

此儀表板可讓您查看不同輸入上游目的地的要求處理效能,這是要接收輸入控制器流量轉送的應用程式端點。 它會顯示要求總計和上游回應時間的 P50、P95 和 P99 百分位數。 您也可以檢視要求錯誤和延遲的彙總。 使用此儀表板來檢閱及改善應用程式的效能和可擴縮性。

您可以從 GitHub 下載此儀表板。

瀏覽器的螢幕擷取畫面,其中顯示 Grafana 上的輸入 nginx 要求處理效能儀表板。

匯入儀表板

若要匯入 Grafana 儀表板,請展開左側功能表,然後按一下 [儀表板] 下方的 [匯入]

瀏覽器的螢幕擷取畫面,其中顯示已醒目提示 [匯入] 儀表板的 Grafana 執行個體。

然後上傳所需的儀表板檔案,並按一下 [載入]

瀏覽器的螢幕擷取畫面,其中顯示 Grafana 執行個體匯入儀表板對話方塊。

後續步驟