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实例

配置告警通知规则

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

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

相关推荐
weirong6 小时前
图解 client-go Informer:手写一个 mini-Informer 才敢说懂
kubernetes
.冰块.6 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
项目管理与代码8 小时前
敏捷开发项目管理工具全景科普:角色、事件、工件三张对照表
敏捷开发·敏捷流程·敏捷开发工具·项目集管理软件
无言听风雨丶1 天前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
无言听风雨丶1 天前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
无言听风雨丶2 天前
Kubernetes 控制平面深度剖析:从 kubectl apply 到 etcd 写入的全链路
平面·kubernetes·etcd
openFuyao2 天前
openFuyao x 复旦大学软件工程实验室 Panel 回顾:Agentic时代,集群调度技术体系将如何演进?
kubernetes·openfuyao
螺蛳粉 螺蛳粉2 天前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
相思难忘成疾2 天前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
weirong2 天前
给 K8s 加一个自动值班员:分级故障自愈引擎
kubernetes