第14关 快速定位业务服务慢的问题:利用 Ingress-Nginx 和日志查询实现高效故障排查

大家好,我是博哥爱运维。

有这样的一个生产场景,客户访问我们的服务请求超时或感觉很慢的时候,会向我们的客服反馈问题,这个时候,客服就会来找到我们运维让帮助排查下原因。

这里我们运维人员首先要对自己业务的整个网络链路非常清楚,这样可以在脑海中快速判断一下有哪些环节的链路可能造成问题,我们这里把上节课用到的网络架构图拿来分析下:

在这里插入图片描述

通过向客户索要相应日志的流水号ID信息等,这个时候我们是需要在ingress-nginx查看日志来定位问题的,那么我们怎么把有问题的这条业务服务请求和ingress-nginx日志关联起来呢,就是我们在业务开发的时候,可以和研发部门沟通,将ingress-nginx传过来的头部里面X-Request-Id这个唯一性标识ID记录下来,保存到我们的业务服务日志字段里面,这时候就把两者之间的日志给关联起来了


root@node-1:~# curl -H "Host: whoami.boge.com" -s http://10.0.1.201
Hostname: whoami-6cf6989d4c-567vs
IP: 127.0.0.1
IP: ::1
IP: 172.20.139.114
IP: fe80::46b:2dff:fede:1744
RemoteAddr: 172.20.84.128:45544
GET / HTTP/1.1
Host: whoami.boge.com
User-Agent: curl/7.81.0
Accept: */*
X-Custom-Real-Ip: 10.0.1.201
X-Forwarded-For: 10.0.1.201
X-Forwarded-Host: whoami.boge.com
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Scheme: http
X-Real-Ip: 10.0.1.201
X-Request-Id: b6f5f63d1e51e25c21640d0223376d68
X-Scheme: http# 唯一性标识ID:
X-Request-Id: b6f5f63d1e51e25c21640d0223376d68root@node-1:~# kubectl -n kube-system logs nginx-ingress-controller-m98vx |grep b6f5f63d1e51e25c21640d0223376d68
Defaulted container "nginx-ingress-controller" out of: nginx-ingress-controller, init-sysctl (init)
{"@timestamp": "2023-11-26T16:13:05+08:00","remote_addr": "10.0.1.201","x-forward-for": "10.0.1.201","request_id": "b6f5f63d1e51e25c21640d0223376d68","remote_user": "-","bytes_sent": 611,"request_time": 0.179,"status": 200,"vhost": "whoami.boge.com","request_proto": "HTTP/1.1","path": "/","request_query": "-","request_length": 79,"duration": 0.179,"method": "GET","http_referrer": "-","http_user_agent":  "curl/7.81.0","upstream-sever":"default-whoami-80","proxy_alternative_upstream_name":"","upstream_addr":"172.20.139.114:80","upstream_response_length":469,"upstream_response_time":0.179,"upstream_status":200}日志里面分析网络请求延迟的关键字段:
"request_time": 0.179,"status": 200   # 客户端发来的请求延迟+我们的服务端响应请求的延迟、请求状态码
"upstream_response_time":0.179,"upstream_status":200   # 我们的服务端响应请求的延迟、请求响应状态码

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

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

相关文章

nginx配置反向代理及负载均衡

目录 1.前端发送的请求,是如何请求到后端服务的1.nginx 反向代理的好处:2.nginx 反向代理的配置方式:3. nginx 负载均衡的配置方式 1.前端发送的请求,是如何请求到后端服务的 1.nginx 反向代理的好处: 提高访问速度 因…

勒索解密后oracle无法启动故障处理----惜分飞

客户linux平台被勒索病毒加密,其中有oracle数据库.客户联系黑客进行解密【勒索解密oracle失败】,但是数据库无法正常启动,dbv检查数据库文件报错 [oraclehisdb ~]$ dbv filesystem01.dbf DBVERIFY: Release 11.2.0.1.0 - Production on 星期一 11月 27 21:49:17 2023 Copyrig…

Python之Requests模块简介与安装

Requests模块简介 在python的标准库中,虽然提供了urllib,utllib2,httplib,但是做接口测试,requests使用更加方便快捷,正如官方说的,“让HTTP服务人类”。 Requests是用python语言基于urllib编写的,采用的是…

11.30BST理解,AVL树操作,定义;快速幂,二分求矩阵幂(未完)

完全二叉树结点的度可能有1,满二叉树的度只能为0或2 BST构建 BST是左孩子都比根节点小,右孩子都比根节点大 二叉搜索树的插入,删除,调整 平衡树理解 任何一个平衡二叉树,它的中序遍历都是一样的,都是有…

蔚碳科技联合中投会发布国内首个 ESG 尽职调查服务标准

11 月 26 日,蔚碳(上海)科技有限公司(以下简称“蔚碳科技”)受邀出席由深圳市人民政府主办,深圳市发展和改革委员会、深圳市生态环境局、龙岗区人民政府共同承办的 2023 碳达峰碳中和论坛暨深圳国际低碳城论…

已知数组A[1..n]中元素类型为非负整数,设计算法将其调整为左右两部分,左边所有为奇数,右边所有为偶数,并要求算法的时间复杂度为O(n)

//左边奇数右边偶数 void Swap(int* a, int* b) {int tmp *b;*b *a;*a tmp; } void LeftRight(int arr[],int n) {int i 0;int j n - 1;while(i<j){if (arr[i] % 2 0 && arr[j] % 2 1) {Swap(&arr[i], &arr[j]);i;j--;}else if (arr[i] % 2 1 &…

振南技术干货集:各大平台串口调试软件大赏(5)

注解目录 &#xff08;串口的重要性不言而喻。为什么很多平台把串口称为 tty&#xff0c;比如 Linux、MacOS 等等&#xff0c;振南告诉你。&#xff09; 1、各平台上的串口调试软件 1.1Windows 1.1.1 STCISP &#xff08;感谢 STC 姚老板设计出 STCISP 这个软件。&#xf…

Pytorch——多卡GPU训练与单卡GPU训练相互切换

部分深度学习网络默认是多卡并行训练的&#xff0c;由于某些原因&#xff0c;有时需要指定在某单卡上训练&#xff0c;最近遇到一个&#xff0c;这里总结如下。 目录 一、多卡训练1.1 修改配置文件1.2 修改主训练文件1.3 显卡使用情况 二、单卡训练2.1 修改配置文件2.2 显卡使…

利用ElementUI配置商品的规格参数

商品有不同的规格组合&#xff0c;自动生成对应规格的所有组合&#xff0c;并设置该规格的图片、价格、库存数据。 <template><div class"sku-list"><template v-if"!disabled"><div class"sku-list-head"><el-but…

visual Studio MFC 平台实现图像增强中Gray-level slicing,Bit-plane slicing,对比度拉伸三种方法

MFC 实现图像增强–分段式变换 本文使用visual Studio MFC 平台实现图像增强中的第三大类分段式变换中的三种方法&#xff0c;包括Gray-level slicing&#xff0c;Bit-plane slicing&#xff0c;对比度拉伸&#xff0e; 关于其他MFC单文档工程可参考 01-Visual Studio 使用MFC …

ubuntu系统下搭建本地物联网mqtt服务器的步骤

那么假如我们需要做一些终端设备&#xff0c;例如温湿度传感器、光照等物联网采集设备要接入呢&#xff1f;怎么样才能将数据报送到服务器呢&#xff1f; 以下内容基于我们ubuntu系统下的emqx成功启动的基础上。我们可以用浏览器键入控制板的地址&#xff0c;如果启动成功&…

安装两个WIN10/WIN11系统到两个盘中,第二个系统依赖原系统盘引导的问题

前段时间折腾装一个双系统&#xff0c;主要两个方面考虑&#xff1a; 1. 原来的系统又许多软件&#xff0c;想着先保留&#xff1b; 2. 系统想安装到一个固态硬盘中&#xff1b; 在安装的过程中遇到了一些问题&#xff0c;这里记录分享一下。 问题1&#xff0c;运行系统自动安装…