Pantau metrik kontroler ingress-nginx dalam add-on perutean aplikasi menggunakan Prometheus dan Grafana

Perhatian

Jaringan SIG Kubernetes dan Komite Respons Keamanan mengumumkan penghentianproyek NGINX Ingress yang akan datang, dengan pemeliharaan berakhir pada Maret 2026. Tidak ada tindakan langsung yang diperlukan hari ini untuk kluster AKS menggunakan add-on perutean aplikasi dengan NGINX. Microsoft akan memberikan dukungan resmi untuk patch keamanan penting pada sumber daya add-on perutean aplikasi NGINX Ingress hingga November 2026.

AKS menyelaraskan dengan Kubernetes utama dengan pindah ke Gateway API sebagai standar jangka panjang untuk ingress dan manajemen trafik L7. Sebaiknya Anda mulai merencanakan jalur migrasi berdasarkan penyiapan Anda saat ini:

Pengontrol ingress-nginx dalam add-on perutean aplikasi menyediakan banyak metrik untuk permintaan, proses nginx, dan pengontrol, yang dapat berguna dalam menganalisis performa dan penggunaan aplikasi Anda.

Add-on routing aplikasi mengekspos titik akhir metrik Prometheus pada port 10254 di /metrics dan Layanan privat nginx-metrics.

Prerequisites

  • Kluster Azure Kubernetes Service (AKS) dengan add-on perutean aplikasi yang diaktifkan.
  • Instans Prometheus, seperti layanan terkelola Azure Monitor untuk Prometheus.

Memvalidasi titik akhir metrik

Untuk memvalidasi metrik yang dikumpulkan, Anda dapat menyiapkan penerusan port dari port lokal ke port 10254 dari layanan 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

Perhatikan port lokal (43307 dalam hal ini) dan buka http://localhost:43307/metrics di browser Anda. Anda seharusnya melihat pemuatan metrik pengontrol ingress-nginx.

Cuplikan layar metrik Prometheus di browser.

Anda sekarang dapat mengakhiri proses port-forward untuk menghentikan penerusan.

Mengonfigurasi layanan terkelola Azure Monitor untuk Prometheus

Layanan terkelola Azure Monitor untuk Prometheus adalah layanan yang kompatibel dengan Prometheus yang dikelola sepenuhnya yang mendukung fitur standar industri seperti PromQL, dasbor Grafana, dan pemberitahuan Prometheus. Layanan ini memerlukan konfigurasi add-on metrik untuk agen Azure Monitor, yang mengirim data ke Prometheus. Jika kluster Anda tidak dikonfigurasi dengan add-on, Anda dapat mengikuti artikel ini untuk mengonfigurasi kluster Azure Kubernetes Service (AKS) untuk mengirim data ke layanan terkelola Azure Monitor untuk Prometheus.

Mengaktifkan pengikisan berbasis Service Monitor

Setelah kluster Anda diperbarui dengan agen Azure Monitor, Anda perlu mengonfigurasi agen untuk mengaktifkan pengikisan titik akhir metrik. Anda dapat membuat Pod atau Service Monitor untuk menyelesaikan hal ini.

Berikut ini membuat Service Monitor untuk melakukan scrape metrik dari pengontrol ingress-nginx yang diterapkan oleh add-on perutean aplikasi.

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

Dalam beberapa menit, ama-metrics pod di kube-system namespace harus memulai ulang dan mengambil konfigurasi baru.

Meninjau visualisasi metrik di Azure Managed Grafana

Sekarang setelah Anda memiliki layanan terkelola Azure Monitor untuk Prometheus dan Azure Managed Grafana yang dikonfigurasi, Anda sebaiknya mengakses instance Grafana Terkelola Anda.

Ada dua dasbor ingress-nginx resmi yang dapat Anda unduh dan impor ke instans Grafana Anda:

  • Dasbor pengontrol Ingress-nginx
  • Dasbor performa penanganan permintaan

Dasbor pengontrol Ingress-nginx

Dasbor ini memberi Anda visibilitas volume permintaan, koneksi, tingkat keberhasilan, pemuatan ulang konfigurasi, dan konfigurasi tidak sinkron. Anda juga dapat menggunakannya untuk melihat tekanan IO jaringan, memori, dan penggunaan CPU pengontrol ingress. Akhirnya, ini juga menunjukkan waktu respons persentil P50, P95, dan P99 dari ingress Anda dan throughputnya.

Anda dapat mengunduh dasbor ini dari GitHub.

Cuplikan layar browser yang memperlihatkan dasbor ingress-nginx di Grafana.

Dasbor performa penanganan permintaan

Dasbor ini memberi Anda visibilitas ke dalam performa penanganan permintaan dari berbagai tujuan hulu ingress, yang merupakan titik akhir aplikasi Anda yang diteruskan oleh pengontrol ingress. Ini menunjukkan persentil P50, P95, dan P99 dari total permintaan dan waktu respons upstream. Anda juga dapat melihat agregat kesalahan permintaan dan latensi. Gunakan dasbor ini untuk meninjau dan meningkatkan performa dan skalabilitas aplikasi Anda.

Anda dapat mengunduh dasbor ini dari GitHub.

Cuplikan layar browser yang menunjukkan dasbor performa penanganan permintaan ingress-nginx di Grafana.

Mengimpor dashboard

Untuk mengimpor dasbor Grafana, perluas menu sebelah kiri dan klik Impor di bawah Dasbor.

Cuplikan layar browser yang memperlihatkan instans Grafana dengan dasbor Impor disorot.

Kemudian unggah file dasbor yang diinginkan dan klik Muat.

Cuplikan layar browser yang memperlihatkan dialog dasbor impor instans Grafana.

Langkah selanjutnya