某业务间接性获取不到数据

简介: 某业务间接性获取不到数据

引言


问题往往出现在意想不到的地方;问题分析时,我们需要更多的数据作为支撑。


问题现象


某天晚上用户反馈业务经过高防产品后间接性的无法获取到数据;判断是高防的问题导致的,由于是线上业务需要我们紧急处理。


第一优先级恢复业务


用户反馈由于源站证书问题,无法进行域名解析回源的。当时萌了,还有这种操作;随后的排查:
1、请用户处理源站证书,全部处理正确;随后全部域名解析回源。
2、分析高防4层&7层日志 是否有拦截情况。


分析高防日志


在高防的4层和7层日志上,没有任何的异常返回码以及拦截记录。即高防没有啥问题


源站处理


用户将源站证书处理正常;将域名全部解析回源,但是依然发现有问题。
反馈的业务架构为:Client->cms..cn(slb-ECS)->content.x.cn
其中b.com是在高防上的。但是均已经解析回源负载均衡了依然有问题,苦于联系不到用户的开发同学;与客户达成共识暂定白天继续分析。


深入分析


业务恢复
白天开发操作,由原来的请求访问b.com 修改为内网负载均衡之后,问题现象消失。需要我们配合查询原因,同时不认可是应用问题;判断的依据是真正的通信域名一直在高防上


Review业务结构


针对这个情况拉上用户的运维,开发,我们的同学与用户对齐信息;了解到如下信息
用户的运维和开发是2个部门,操作完全是分开的。晚上操作的b.com回源其实没有效果,因为当时cms.x.cn(slb-ECS)访问的域名是content.x.com;content.x.com这个域名一直解析在高防上没有解析走过。
Review分析过程
根据用户的数据
cms.x.cn(slb-ECS)这5个ECS的公网地址是需要大量的访问 content.x.com 这个域名的。
image.png


分析高防7层日志


分析过程中发现共5台ECS的公网IP,但是在高防的7层日志里只有3台的数据量是正常的;其他1台没有日志,1台非常少。这个数据是符合间接性的失败的情况。
image.png


分析高防4层日志


分析过程中发现用户的5台ECS的公网IP,在4层日志都是有的,且量还不小。


分析初步结论


开始认为可能为高防的VIP到7层代理之间,或者7层代理的问题。但是经过与开发同学的讨论
1、LB 流的日志是正常的。所以当时的网络以及Tengine不太可能有问题。
2、用户是走的https协议,那么三次握手完成之后,应该是要进行ssl握手。
最终判断比较大的可能是由于当时ssl握手的时候,出现了问题。


验证问题


将其中一台请求基本没有的ECS的链接地址修改为高防/SLB,然后在该ECS上进行抓包分析。看到的抓包如下,肯定完成三次握手后,没有进行ssl握手的动作直接断开了链接;这个行为是不符合预期的。
image.png


随后用户对比正常与不正常的服务配置。
定位到是由于php的配置文件中,没有开启模块extension=php_openssl.dll ;开启后问题现象消失。

相关文章
|
Linux 数据处理 开发者
Linux命令ld.bfd:二进制文件的强大链接器
`ld.bfd`是GNU链接器的变体,利用BFD库处理多种目标文件格式(如ELF, COFF)。它收集文件,解析符号,执行重定位,生成可执行文件。特点包括多格式支持,高效符号管理和诊断信息。常用命令如`ld.bfd -o output file1.o file2.o -lc`。注意文件路径、链接顺序,利用诊断信息和文档,保持工具更新以优化使用。
|
前端开发 JavaScript API
Axure实战22:使用Axure和CSS实现渐变色背景
Axure实战22:使用Axure和CSS实现渐变色背景
966 0
Axure实战22:使用Axure和CSS实现渐变色背景
|
9月前
|
测试技术 Python
Python 的 for-else 循环结构是如何工作的?
本文介绍了Python中不太为人熟知但实用的`for-else`循环结构。通过示例讲解了其工作原理:当`for`循环正常结束而未遇到`break`时,执行`else`块。文章提供了两个应用场景——检查素数和列表搜索,帮助理解如何高效使用该结构。最后提醒,若无需条件跳出循环,普通`for`循环已足够。
413 33
|
存储 安全 容灾
同步与备份
【7月更文挑战第1天】同步与备份
867 70
|
前端开发 安全 关系型数据库
PHP在Web开发中的应用及其优势###
【10月更文挑战第16天】 — 本文探讨了PHP在现代Web开发中的广泛应用及其显著优势。通过分析PHP的核心特性,如灵活性、易用性和广泛的应用支持,阐述了为何PHP成为众多开发者和公司的首选技术。文章还介绍了PHP与其他编程语言的比较,并展望了其未来的发展趋势。 ###
245 2
|
存储 Java API
开源对象存储服务(MinIO),正在备受欢迎!
本文介绍了MinIO,一个高性能、开源的对象存储服务器,兼容Amazon S3 API,适合存储大量非结构化数据。文章详细讲解了MinIO在Java中的使用方法,包括添加依赖、初始化客户端、基本操作(创建桶、上传/下载/删除对象)和高级功能(设置桶策略、使用预签名URL),并提供了Spring Boot集成MinIO的示例。
1304 4
|
存储 运维 Serverless
函数计算产品使用问题之如何规避因提高CPU规格而导致的内存规格不必要增加的问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
228 0
|
消息中间件 分布式计算 大数据
大数据处理工具及其与 Kafka 的搭配使用
大数据处理工具及其与 Kafka 的搭配使用
294 2
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的考研资料分享系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的考研资料分享系统的详细设计和实现
198 0
|
SQL 存储 安全
【SQL刷题】Day3----SQL必会的常用函数专项练习
【SQL刷题】Day3----SQL必会的常用函数专项练习
375 0
【SQL刷题】Day3----SQL必会的常用函数专项练习