本文分享自華為雲社群《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頁
配置告警規則
選擇指標告警規則,配置方式可使用PromQL語句,選擇對應的AOM例項
配置告警通知規則
觸發指標告警規則,郵箱收到告警
點選關注,第一時間瞭解華為雲新鮮技術~