写点什么

K8s 集群 nginx-ingress 监控告警最佳实践

  • 2024-04-18
    广东
  • 本文字数:994 字

    阅读完需:约 3 分钟

K8s集群nginx-ingress监控告警最佳实践

本文分享自华为云社区《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 实例




配置告警通知规则



触发指标告警规则,邮箱收到告警



点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 4
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
K8s集群nginx-ingress监控告警最佳实践_k8s_华为云开发者联盟_InfoQ写作社区