You need to enable JavaScript to run this app.
导航

Ingress-nginx 监控

最近更新时间2024.02.28 20:04:51

首次发布时间2023.08.25 14:26:41

容器服务提供基于社区版的 Nginx Ingress Controller,它将 Ingress 规则转换成 Nginx 的配置,并基于 Nginx 来进行七层的流量转发。同时,支持对 Nginx Ingress Controller 进行监控。本文为您介绍如何配置和查看 Nginx Ingress 的监控信息。

前提条件

操作步骤

当您将容器服务集群正确接入托管 Prometheus,并安装了对应的组件后,需要配置对应的采集规则,才能正确采集指标。

  1. 登录 容器服务控制台
  2. 在左侧导航栏中选择 集群
  3. 在集群列表页面,单击目标集群。
  4. 在集群管理页面的左侧导航栏中,选择 监控中心 > 监控看板
  5. 在配置页面右上角,单击 指标采集配置
  6. 选择 数据面组件 页签,在组件列表 是否采集 列,单击开关,开启 ingress- nginx 组件的采集规则。
    alt
  7. (可选)单击组件列表 操作 栏中的 编辑指标,支持选择或丢弃组件的具体指标,并配置面向该组件的采集间隔。
    • 在 采集间隔 下拉菜单中,选择该组件指标的采集间隔。不同组件支持的采集间隔不同。
    • 在指标列表中,勾选指标,则采集该指标。取消勾选,则丢弃该指标。单击 指标类型 表头,允许基于指标类型对指标项进行筛选。
      alt

      说明

      • 减小指标采集间隔,会增加单位时间内上报的指标数量,可以提升监控精度。但会增加托管 Prometheus 标准版工作区的费用。增加指标采集间隔,会减少单位时间内上报的指标数量,可以减少托管 Prometheus 标准版工作区的费用,但会降低监控精度。请根据实际需要配置。
      • 云产品的指标类型分为 基础指标 和 其他指标,不同类型指标的计费方式不同,详情请参见 托管 Prometheus 计费方式

查看大盘

您可以在容器服务控制台中,查看预置的监控大盘。包括:请求总数、连接数、请求成功率、配置重载次数、CPU 趋势图、内存趋势图等。

  1. 登录 容器服务控制台
  2. 在左侧导航栏中选择 集群
  3. 在集群列表页面,单击目标集群。
  4. 在集群管理页面的左侧导航栏中,选择 监控中心 > 监控看板
  5. 在左侧看板列表中选择 网络服务监控 > Ingress-nginx 监控,即可查看监控大盘。
    • ingressClass 下拉菜单中,选择 ingress 的类型。包括系统默认 ingress-nginx 和自定义 Nginx Ingress Controller。
    • Pod 下拉菜单中,指定具体的 Pod。
      alt

      说明

      您也可以在集群中自建 Grafana,并通过 Grafana 查看指标和创建大盘。详情请参见 在容器服务集群中部署 Grafana 并接入工作区

指标清单

ingress-nginx 监控的指标清单如下表所示。

大盘分类大盘名称PromQL 语句
ingress-nginx 监控请求总数sum(nginx_ingress_controller_nginx_process_requests_total{cluster="$clusterId"})
连接数sum(avg_over_time(nginx_ingress_controller_nginx_process_connections{cluster="$clusterId",state="active"}[5m]))
请求成功率sum(rate(nginx_ingress_controller_requests{cluster="$clusterId",status!~"[4-5].*"}[2m]))/sum(rate(nginx_ingress_controller_requests{cluster="$clusterId"}[2m]))
配置重载次数avg(nginx_ingress_controller_success{cluster="$clusterId"})
CPU 趋势图avg (rate (nginx_ingress_controller_nginx_process_cpu_seconds_total{cluster="$clusterId"}[2m]))by(controller_pod)
内存趋势图avg(nginx_ingress_controller_nginx_process_resident_memory_bytes{cluster="$clusterId"})by(controller_pod)
流量速率趋势图sum (irate (nginx_ingress_controller_request_size_sum{cluster="$clusterId"}[2m]))by(controller_pod)
请求处理延迟histogram_quantile(0.9, sum(rate(nginx_ingress_controller_response_duration_seconds_bucket{cluster="$clusterId"}[2m]))by(le,path))
请求趋势图sum(increase(nginx_ingress_controller_requests{cluster="$clusterId"}[15s]))by(controller_pod)
请求数趋势图 by pathsum(increase(nginx_ingress_controller_requests{cluster="$clusterId"}[15s]))by(path)
错误数趋势图 by pathsum(increase(nginx_ingress_controller_requests{cluster="$clusterId",status!~"2.."}[15s]))by(path)
错误数趋势图 by http codesum(increase(nginx_ingress_controller_requests{cluster="$clusterId",status!~"2.."}[15s]))by(status)

说明

如果您需要在托管 Prometheus 中的 Explore 功能或告警中心使用上述 PromQL 语句查看具体的指标或配置告警,请修改或删除语句中关于集群、节点、容器组的变量。例如:将 cluster=~"$Cluster"参数中的$Cluster变量修改为具体的集群 ID ,或直接删除该参数。

查看指标

您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询

配置告警

您可以在托管 Prometheus 的告警中心配置集群相关告警。详情请参见 创建告警规则