K8s集羣nginx-ingress監控告警最佳實踐

本文分享自華爲雲社區《K8s集羣nginx-ingress監控告警最佳實踐》,作者:可以交個朋友。

一 背景

nginx-ingress作爲K8s集羣中的關鍵組成部分。主要負責k8s集羣中的服務發佈,請求轉發等功能。如果在訪問服務過程中出現404和502等情況,需要引起注意。

二 方案簡介

可以通過CCE集羣插件kube-prometheus-stack進行nginx-ingress服務的指標監控,Grafana儀表盤視圖可以自己製作或者導入開源模板,方便時刻觀察nginx-ingress的各項運行指標是否處於健康狀態。

image.png

CCE Prometheus監控指標數據統一remotewrite到華爲雲AOM2.0服務,可以在AOM2.0服務中展示Prometheus採集的指標數據,並根據業務實際訴求,實現基於指標的的告警通知。

CCE監控插件對接AOM:

image.png

image.png

AOM查看nginx-ingress

image.png

三 nginx-ingress關鍵指標

確保Prometheus已成功抓取nginx-ingress指標

image.png

  • 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頁

image.png

配置告警規則

選擇指標告警規則,配置方式可使用PromQL語句,選擇對應的AOM實例

image.png

image.png

配置告警通知規則

image.png

觸發指標告警規則,郵箱收到告警

image.png

 

點擊關注,第一時間瞭解華爲雲新鮮技術~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章