K8s集群nginx-ingress监控告警最佳实践
【摘要】 介绍nginx-ingress常用监控指标以及如何告警通知
一 背景
nginx-ingress作为K8s集群中的关键组成部分。主要负责k8s集群中的服务发布,请求转发等功能。如果在访问服务过程中出现404和502等情况,需要引起注意。
二 方案简介
-
可以通过CCE集群插件kube-prometheus-stack进行nginx-ingress服务的指标监控,Grafana仪表盘视图可以自己制作或者导入附件模板(grafana推荐8.3.x以上版本),方便时刻观察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实例
-
配置告警通知规则
-
触发指标告警规则,邮箱收到告警
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)