本文分享自華爲雲社區《K8s集羣nginx-ingress監控告警最佳實踐》,作者:可以交個朋友。
一 背景
nginx-ingress作爲K8s集羣中的關鍵組成部分。主要負責k8s集羣中的服務發佈,請求轉發等功能。如果在訪問服務過程中出現404和502等情況,需要引起注意。
二 方案簡介
可以通過CCE集羣插件kube-prometheus-stack進行nginx-ingress服務的指標監控,Grafana儀表盤視圖可以自己製作或者導入開源模板,方便時刻觀察nginx-ingress的各項運行指標是否處於健康狀態。
CCE Prometheus監控指標數據統一remotewrite到華爲雲AOM2.0服務,可以在AOM2.0服務中展示Prometheus採集的指標數據,並根據業務實際訴求,實現基於指標的的告警通知。
CCE監控插件對接AOM:
AOM查看nginx-ingress
三 nginx-ingress關鍵指標
確保Prometheus已成功抓取nginx-ingress指標
-
nginx-ingress配置熱加載失敗次數
count(nginx_ingress_controller_config_last_reload_successful{} == 0)
-
nginx-ingress每個nginx-ingress-controller實例的連接數
sum(nginx_ingress_controller_nginx_process_connections) by (controller_namespace,controller_pod)
-
nginx-ingress每個nginx-ingress-controller實例中process數
nginx_ingress_controller_nginx_process_num_procs
-
nginx-ingress每個nginx-ingress-controller實例的每秒請求數
sum(irate(nginx_ingress_controller_requests{}[1m])) by (controller_namespace,controller_pod)
-
nginx-ingress請求時延
histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{status="200"}[1m])) by (le, ingress, host, path)) * 1000
histogram_quantile(0.95, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{status="200"}[1m])) by (le, ingress, host, path)) * 1000
histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{status="200"}[1m])) by (le, ingress, host, path)) * 1000
-
請求失敗率
sum(rate(nginx_ingress_controller_requests{status=~"[4-5].*"}[5m])) / sum(rate(nginx_ingress_controller_requests{}[5m])) * 100
四 如何根據nginx-ingress指標進行告警
前往AOM告警管理tab頁