ingress-nginx 开启 Prometheus 监控 + Grafana 查看指标

环境已经部署了 ingress-nginx(DaemonSet 方式),并且 Prometheus + Grafana 也已经运行。但之前 /metrics 端点没有暴露 Nginx 核心指标(如 nginx_ingress_controller_requests_total),经过调整后现在可以正常采集数据。以下是完整操作总结:


1. 确保 ingress-nginx 暴露 Prometheus 指标

(1)检查并修改 DaemonSet 配置

kubectl edit daemonset ingress-nginx-controller -n ingress-nginx

在 containers.args 中添加:

args:
- /nginx-ingress-controller
- --enable-metrics=true          # 启用 Prometheus 指标
- --metrics-per-host=true       # 按 Host 统计指标(可选)
- --configmap=$(POD_NAMESPACE)/ingress-nginx
- ...(其他原有参数保持不变)

保存后会自动重启 Pod,或者手动滚动更新:

kubectl rollout restart daemonset ingress-nginx-controller -n ingress-nginx

(2)验证指标是否暴露

kubectl exec -it $(kubectl get pods -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}') \-n ingress-nginx -- curl -s http://localhost:10254/metrics | grep 'nginx_ingress_controller_requests_total'

预期输出

nginx_ingress_controller_requests_total{ingress="your-ingress", namespace="default", status="200"} 15

2. 配置 Prometheus 采集指标

(1)创建 ServiceMonitor(如果尚未配置)

cat <<EOF | kubectl apply -f -
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:name: ingress-nginxnamespace: ingress-nginxlabels:release: prometheus  # 必须匹配 Prometheus 的 serviceMonitorSelector
spec:selector:matchLabels:app.kubernetes.io/name: ingress-nginx  # 匹配 Service 的标签endpoints:- port: metrics        # 必须与 Service 的端口名称一致interval: 15spath: /metrics
EOF

(2)检查 Prometheus Targets

访问 Prometheus 的 Targets 页面(如 http://prometheus-server:9090/targets),确认 ingress-nginx 的 target 状态为 UP

(3)手动查询 Prometheus 验证

# 进入 Prometheus Pod 查询
kubectl exec -it $PROM_POD -n prometheus -c prometheus -- \curl -s "http://localhost:9090/api/v1/query?query=nginx_ingress_controller_requests_total" | jq

预期:返回带 ingress 和 status 标签的指标数据。


3. 在 Grafana 中查看指标

(1)导入官方 Dashboard

  1. 登录 Grafana(如 http://grafana.example.com

  2. 点击 + → Import

  3. 输入 Dashboard ID:

    • 最新版(推荐)14314(官方链接)

    • 旧版兼容:9614

  4. 选择正确的 Prometheus 数据源

(2)检查数据源和查询

  • 确认数据源:Dashboard 右上角选择正确的 Prometheus 数据源。

  • 检查查询语句:点击任意 Panel → Edit → 查看 Query 是否使用正确的指标(如 nginx_ingress_controller_requests_total)。

  • 调整时间范围:确保选择最近的时间范围(如 Last 1 hour)。

(3)常见问题排查

  • 无数据

    • 检查 Prometheus 是否真的采集到数据(直接查询 nginx_ingress_controller_requests_total)。

    • 确保有流量经过 ingress-nginx(空流量无指标)。

  • 指标名称不匹配

    • 新版本可能用 controller_nginx_requests_total,需调整 Grafana 查询。


4. 最终验证

  1. Prometheus 有数据

    curl -s "http://prometheus:9090/api/v1/query?query=nginx_ingress_controller_requests_total" | jq
  2. Grafana 图表正常

    • 打开 Dashboard,查看请求量、错误率、延迟等图表。


总结

步骤关键操作
1. 启用指标--enable-metrics=true + 重启 DaemonSet
2. 配置采集创建 ServiceMonitor 匹配 metrics 端口
3. 检查 TargetPrometheus 的 Targets 页面确认 UP
4. 导入 DashboardGrafana 导入 ID 14314,选择正确数据源
5. 验证数据直接查询 Prometheus + 检查 Grafana 图表

你的环境已经可以正常监控 ingress-nginx,后续只需关注 Grafana Dashboard 即可实时观察流量、错误率等关键指标!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThinkPHP 5.1 中的 error 和 success 方法详解

1、success() 方法 public function someAction() {// 操作成功逻辑...return $this->success(操作成功, 跳转地址, 额外数据); } 参数说明 参数类型说明默认值msgstring成功提示信息空字符串urlstring跳转URLnull (不跳转)datamixed返回的额外数据nullwaitinteger跳转等…

抗辐照MCU在卫星载荷电机控制器中的实践探索

摘要:在航天领域&#xff0c;卫星系统的可靠运行对电子元件的抗辐照性能提出了严苛要求。微控制单元&#xff08;MCU&#xff09;作为卫星载荷电机控制器的核心部件&#xff0c;其稳定性与可靠性直接关系到卫星任务的成败。本文聚焦抗辐照MCU在卫星载荷电机控制器中的应用实践&…

计算机视觉——相机标定

计算机视觉——相机标定 一、像素坐标系、图像坐标系、相机坐标系、世界坐标系二、坐标系变换图像坐标系 → 像素坐标系相机坐标系 → 图像坐标系世界坐标系 → 相机坐标系 ⋆ \star ⋆ 世界坐标系 → 像素坐标系 三、相机标定 一、像素坐标系、图像坐标系、相机坐标系、世界坐…

好未来0520上机考试题1:括号的最大嵌入深度

题目 &#xff08;LeetCode 1614.括号的最大嵌入深度&#xff09; 给定 有效括号字符串 s&#xff0c;返回 s 的嵌套深度。嵌套深度是嵌套括号的最大数量。 示例 1&#xff1a; 输入&#xff1a;s "(1(2*3)((8)/4))1" 输出&#xff1a;3 解释&#xff1a;数字…

MySQL复杂SQL(多表联查/子查询)详细讲解

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 MySQL复杂SQL&#xff08;多表联查/子查询&a…

Spring中循环依赖问题的解决机制总结

一、解决机制 1. 什么是循环依赖 循环依赖是指两个或多个Bean之间相互依赖对方&#xff0c;形成一个闭环的依赖关系。最常见的情况是当Bean A依赖Bean B&#xff0c;而Bean B又依赖Bean A时&#xff0c;就形成了循环依赖。在Spring容器初始化过程中&#xff0c;如果不加以特殊…

集运维_安装linux,麒麟等系统_步骤

u盘工具选择Ventoy,Rufus 在选择Ventoy和Rufus这两款U盘启动盘制作工具时,需根据具体需求权衡其优缺点: ‌核心差异‌ ‌多系统支持‌: ‌Ventoy‌:支持将多个ISO、WIM、IMG等类型的镜像文件直接复制到U盘,实现‌一盘多用‌(例如同时存放Windows、Linux等镜像),无需…

第4章:Cypher查询语言基础

Cypher是Neo4j的声明式图查询语言&#xff0c;专为处理图数据而设计。它允许用户以直观、高效的方式查询和修改图数据库中的数据。本章将介绍Cypher的基本概念和语法&#xff0c;帮助读者掌握使用Cypher进行基础图数据操作的能力。 4.1 Cypher语言概述 Cypher是Neo4j的主要查…

上位机知识篇---Flask框架实现Web服务

本文将简单介绍Web 服务与前端显示部分,它们基于Flask 框架和HTML/CSS/JavaScript实现,主要负责将实时视频流和检测结果通过网页展示,并提供交互式状态监控。以下是详细技术解析: 一、Flask Web 服务架构 1. 核心路由设计 @app.route(/) def index():"""…

Neovim - 打造一款属于自己的编辑器(一)

文章目录 前言&#xff08;劝退&#xff09;neovim 安装neovim 配置配置文件位置第一个 hello world 代码拆分 neovim 配置正式配置 neovim基础配置自定义键位Lazy 插件管理器配置tokyonight 插件配置BufferLine 插件配置自动补全括号 / 引号 插件配置 前言&#xff08;劝退&am…

按字典序排列最小的等效字符串

文章目录 题目思路解题过程Python代码C代码复杂度 题目 给出长度相同的两个字符串s1 和 s2 &#xff0c;还有一个字符串 baseStr 。 其中 s1[i] 和 s2[i] 是一组等价字符。 举个例子&#xff0c;如果 s1 “abc” 且 s2 “cde”&#xff0c;那么就有 ‘a’ ‘c’, ‘b’ ‘…

Ubuntu2404 下搭建 Zephyr 开发环境

1. 系统要求 操作系统&#xff1a;Ubuntu2404&#xff08;64位&#xff09;磁盘空间&#xff1a;至少 8GB 可用空间&#xff08;Zephyr 及其工具链较大&#xff09; 2. 安装必要工具 Tool Min. Version CMake 3.20.5 Python 3.10 Devicetree compiler 1.4.6 2.1 安装系…

2025年06月07日Github流行趋势

项目名称&#xff1a;netbird 项目地址url&#xff1a;https://github.com/netbirdio/netbird项目语言&#xff1a;Go历史star数&#xff1a;14824今日star数&#xff1a;320项目维护者&#xff1a;mlsmaycon, braginini, pascal-fischer, lixmal, pappz项目简介&#xff1a;使…

fast-reid部署

配置设置&#xff1a; 官方库链接&#xff1a; https://github.com/JDAI-CV/fast-reid# git clone https://github.com/JDAI-CV/fast-reid.git 安装依赖&#xff1a; pip install -r docs/requirements.txt 编译&#xff1a;切换到fastreid/evaluation/rank_cylib目录下&a…

clickhouse 和 influxdb 选型

以下是 ClickHouse、InfluxDB 和 HBase 在体系架构、存储引擎、数据类型、性能及场景的详细对比分析: 🏗️ ‌一、体系架构对比‌ ‌维度‌‌ClickHouse‌‌InfluxDB‌‌HBase‌‌设计目标‌大规模OLAP分析,高吞吐复杂查询 时序数据采集与监控,优化时间线管理高吞吐随机…

ros创建工作空间配置运行状态机

ROS 一、创建工作空间目录 /home/wict/workspace/hudahua/ros/catkin_ws #初始化工作空间&#xff08;仅需一次&#xff09; catkin_init_workspace二&#xff1a;回到根目录编译 #创建正确的工作空间结构&#xff08;如果尚未创建&#xff09; mkdir -p ~/workspace/hudahua…

【看到哪里写到哪里】C的“数组指针”

C里面&#xff0c;数组指针&#xff0c;不是基本类型。顾名思义&#xff0c;数组指针&#xff0c;是指针&#xff0c;是指向数组的指针&#xff1b; 1.它的基本定义样子是 type (*ptr)[size]; 这个指针&#xff0c;指向的数组的&#xff1b;这里要注意&#xff0c;要定义数组…

深度相机的日常学习

文章目录 一、深度相机的概念二、深度相机的工作原理三、深度相机的应用领域 一、深度相机的概念 深度相机&#xff08;Depth Camera&#xff09;是一种能够捕捉场景中物体距离信息的设备&#xff0c;与传统的 RGB 相机不同&#xff0c;深度相机不仅可以获取场景的二维图像信息…

elasticsearch基本操作笔记

1.通过kibana查看elasticsearch版本信息 a.左上角三道横->Management->Dev Tools b.GET / 执行 c.执行结果 { “name” : “xxxx”, “cluster_name” : “xxxxxxx”, “cluster_uuid” : “vl1UudAoQp-aHWAzyPoMyw”, “version” : { “number” : “7.15.1”, “build…

两种Https正向代理的实现原理

正向代理 HTTPS 主要有两种方案&#xff0c;分别是基于证书的解密与再加密方案和基于 HTTP CONNECT 隧道的方案&#xff0c;以下是这两种方案的具体信息&#xff1a; 一、基于证书的解密与再加密方案 原理 工作原理&#xff1a;代理服务器拥有自己的证书&#xff0c;客户端需…