排障思路分析归纳

2024-06-18 02:44
文章标签 分析 归纳 思路 排障

本文主要是介绍排障思路分析归纳,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、排除法、分组分层法

日常项目问题概述:

例子:

例子1:客户说内网电脑访问不到公网的某一个网站了。

例子2:客户说早上九点内网无法上网,集体断网,过了一会就恢复了,问题原因是什么?

分层法思路总结

分组法总结

2、单一变量法

例子:

例子1:客户说内网电脑微信发图片卡慢,跳过AF就正常,需要协助排查?

例子2:客户反馈安装了EDR后,导致业务软件的图片打不开,需协助排查?

例子3:客户反馈外网下载内网文件服务器文件,一旦超过10M的文件就会下载失败,经过抓包排查设备未对数据产生影响,但客户依旧认为是设备的问题,怎么说服客户?

3、对比法

例子:

例子1:客户反馈建立了sangfor_vpn后,总部ping分支存在丢包情况,需要排查?

例子:【aDesk】客户反馈某款新部署的软件在桌面云环境的win10虚拟机里面打开几秒后闪退,其他软件可以正常打开,异常的软件之前物理机使用都正常,需要排查问题原因?

4、逆向思维分析法

例子:

例子1:客户说sangfor vpn对接不起来,需要协助。

构建清晰的排障思路,从而达到快速解决问题能力。


1、排除法、分组分层法

排除法的基本思路是逐步排除可能导致问题的因素,直到找到问题的根本原因。具体步骤如下:

  • 确认问题的具体现象,明确问题的范围与影响。
  • 根据问题的表现和影响,列出可能导致问题的因素。
  • 从可能的原因列表中逐一进行验证和排查。
  • 根据验证的结果判断是否结果或是否需要调整策略。
  • 最终找到问题的根本原因,万事大吉。

使用场景: 网络数据不通、环境复杂、问题可能原因众多等需梳理排查思路的场景,逐层有条理的排除。

分层、分组分析:

分层分析: 分层分析法是一种将问题分解为多个层次,并逐层分析和解决问题的方法。具体步骤如下:

确定问题的层次结构:将问题分解为多个层次,从整体到细节,形成一个层次结构。

逐层分析和解决问题:从层次结构的底层开始,逐层分析和解决问题。

观察结果和调整策略:根据每层分析的结果,观察问题是否得到解决或是否有新的线索出现。

分组分析: 分组法是将问题的相关因素进行分组,并逐个分析和解决每个分组的问题的方法。具体步骤如下:

  • 确定相关因素:将问题的相关因素进行分类和分组。
  • 逐个分析和解决分组的问题:从一个分组开始,逐个分析和解决每个分组的问题。
  • 观察结果和调整策略:根据每个分组分析的结果,观察问题是否得到解决或是否有新的线索出现。

日常项目问题概述:

例子:

例子1:客户说内网电脑访问不到公网的某一个网站了。

网络拓扑:

一般排查思路:

  • 终端ping这个域名试试是否可以解析出地址,无法解析换一下dns测试看看是否恢复正常。
  • 防火墙去ping这个域名看是否可以通,如果可以进行下一步。
  • 防火墙开个直通加个白测试看看是否恢复正常。
  • 检查AF路由、地址转换配置是否正确。
  • 抓包分析。
  • XXXX。

分层排查法排查思路:

基于PC访问网页数据交互逻辑分层-缩小问题范围

PC访问域名的逻辑,整个通信过程会分为两个阶段:

  • 访问DNS服务器阶段:公网网站一般为域名形式,那么PC要能与网站服务器建立连接,是需要基于ip做路由转发的,所以要先解析此域名,获取到域名对应的公网ip。
  • 访问web服务器阶段:有了服务器的公网ip,下一步就是建立传输层连接与应用层交互了。PC会先与此公网ip建立TCP连接并发送HTTP请求。服务器响应后,在浏览器中渲染展示。

dns解析异常、传输层端口不通、应用层交五异常?

通过简单梳理数据流通信逻辑,PC访问域名不通,问题可大致分为两个维度:

  • 域名dns解析是否存在异常
  • 与服务器通信是否存在异常(传输层端口不通、应用层交互异常)

排查过程(判断/排除方法):

  • PC使用nslookup解析www.xxxx.com
  • telnet IP 端口

基于网络拓扑中数据包转发阶段-分层梳理问题可能原因:

具体排查时,AF转发数据可以再次分为三个阶段:数据到防火墙之前、数据被防火墙处理转发、数据被防火墙转发出去到公网传输,那可能出现的原因可以分为三层:

  • 内网环境问题导致
  • 防火墙自身问题导致
  • 外网环境问题导致

内网环境问题导致:数据包没有到防火墙

防火墙转发问题导致:

  • 策略拦截
  • 路由转发异常
  • 产品问题(其他问题排除完后,可能是设备产品问题,此时可以转400协助确认)

外网环境问题导致:数据转发至公网但未收到回包

例子2:客户说早上九点内网无法上网,集体断网,过了一会就恢复了,问题原因是什么?

  • 网络维护————配置类导致
  • 设备坏了————设备故障类导致
  • 运营商光纤挖断了————环境问题导致

设备配置类:

  • 查看设备操作日志是否存在问题时间出现前后的配置更改日志。
  • 查看设备流控酏置是否存在问题时间段内限速不合理配置。
  • 查看设备应用控制策略是否存在基于问题时间段的拒绝策略。
  • 查看设备行为日志,对应时间段内是否存在大量联动拒绝的日志,再进一步查看安全日志是否存在拦截情况

设备故障类:

  • 查看设备系统故障日志,比如问题出现时间出现大量error等级日志。
  • 查看设备接口流量详情以及会话数详情,对应时间点是否存在断层、或降为0的情况---一般断层则说明设备发生过重启

环境问题类:

  • 查看AF的接口流量图,确认问题时间是否存在激增大流量导致运营商限制异常流量导致。
  • 如AF网口是否配置了链路故障检测,查看问题时间是否存在故障,是否因为其他设备或运营商环境故障导致断网。

分层法思路总结

分组法总结

断网查原因、暂无明显现象、无法直接定位问题范围的场景,根据分组逻辑“逐组排除”问题,做到思路清晰有条理。

2、单一变量法

单一变量法的基本思路是逐个变量地进行测试和排查,以确定是否存在与该变量相关的问题。具体步骤如下:

  • 根据问题的现象与影响,选择一个变量进行测试和排查。
  • 改变变量的状态。
  • 根据验证的结果判断是否结果或是否需要调整策略。
  • 最终找到问题的根本原因,万事大吉。

适用场景:常应用于产品本身无日志、无明显特征的功能拦截客户业务的问题排查场景,证明非设备问题、实施排除方案,通过单一变量来辅助更加准确的定位问题。

例子:

例子1:客户说内网电脑微信发图片卡慢,跳过AF就正常,需要协助排查?

客户说:“连手机热点就能发送成功了”。(没有遵循单一变量,这样操作同时跳过了多个设备,甚至于公网ip都变了!)

我们可以尝试单独跳过或者单独过设备测试是否正常。————用于快速定位根因的范围

例子2:客户反馈安装了EDR后,导致业务软件的图片打不开,需协助排查?

我们可以卸载EDR后测试是否正常。————用于快速定位根因的范围

例子3:客户反馈外网下载内网文件服务器文件,一旦超过10M的文件就会下载失败,经过抓包排查设备未对数据产生影响,但客户依旧认为是设备的问题,怎么说服客户?

可以通过跳过AF或单独过AF测试是否正常。————用于证明非设备导致

3、对比法

对比法是通过对比不同的情况或对象,找出问题的差异和共同点,进而确定问题的原因和解决方法。具体步骤如下:

  • 根据问题的现象,选择适当的对比对象和情况。
  • 对比不同对象或情况之间的差异和共同点,找出可能导致问题的因素。
  • 根据对比的结果,确定可能导致问题的原因,并提出相应的解决方法。

适用场景:常应用于数据包分析中,vpn丢包等设备的数据转发、ipsecvpn对接不上、双机组件不起来等需对比出异同点,分析异同点的影响来定位问题,如一个流量在防火墙转发时未丢包未重传无明显异常特征,但是客户的业务过AF有异常,此时可以跳过AF抓取一个正常包与过AF的异常包进行对比寻找不同点定位根因。

例子:

例子1:客户反馈建立了sangfor_vpn后,总部ping分支存在丢包情况,需要排查?

vpn数据流详解:

vpntun口作用:vpntun口是vpn隧道中的虚拟三层接口,用于将要传输的数据包进行加密、解密、并校验完整性。

vpn数据流分析:LAN口收到数据后会查询路由转发给vpntun口,vpntun口将数据加密并封装后,从wan口发出到对端,对端wan口收到数据后,解封装并解密后转发给vpntun口,vpntun口查询路由后再转发给LAN口继续转发。

目前需要确认丢包点位置,那么正常逻辑是抓包对比分析,确认丢包范围,如刚分析的数据转发情况:

  • 内网指定ping的字节长度(ping XXX.XXX.XXX.XXX-t-1 1000),然后在两端抓包:tcpdump -i any host对端公网ip or host 对端内网ip -nn 。这样可以在一个包文件中抓取到封装前、封装后的数据包。
  • 再从数据包观察推导出封装后的包长在1000-1200左右。数据包过滤包长即可得出ping包转发以及封装的数据。
  • 再通过对比正常未丢包数据、与发生丢包数据对比,即可得出结论--ping丢包是否发生在上图:1、2或6、7。
  • 再通过分支与总部的数据包对比,即可发现是否存在公网丢包。

像是丢包可以通过IPID去查,看发出去的包IPID和对方收到的IPID是否一致,但是在隧道封装过程中,报文的IPID会产生变化。

例子:【aDesk】客户反馈某款新部署的软件在桌面云环境的win10虚拟机里面打开几秒后闪退,其他软件可以正常打开,异常的软件之前物理机使用都正常,需要排查问题原因?

首先在问题排査前,我们知道是新部署软件无法打开,其他的软件可以正常的打开,跟Windows的环境有很大的强关联的:一般第方软件,在我们对软件的相关功能不太清楚的情况下,这个时候我们可以采取对比排査思路,做环境的对比,排查环境或者产品兼容性的问题。

对比法排查思路

纯净虚拟机对比测试:

  • 能排查是否软件因为agent安装影响导致的。
  • 能排查是否其他软件的安装或者windows操作系统的设置导致的问题。

物理机对比测试:

  • 能排查是否虚拟机性能导致的问题。
  • 能排查是否软件本身不支持虚拟化导致的问题。

不同操作系统对比测试:

  • 能排查是否软件对操作系统支持的测试。

不同软件版本安装对比测试:

  • 能排查是否软件本身版本的存在问题。

不同网络环境对比测试:

  • 能排查是否软件是否有网络环境的限制或必须网络通信。

排查过程

  • 环境信息确认,先获取到基本的环境的信息,确认当虚拟机的操作系统版本跟软件版本后。
  • 物理机侧能打开,确认物理机正常使用软件的操作系统,是否有包含虚拟机的操作系统【对比操作系统差异】。
  • 确认物理机操作系统一致后,再确认安装的软件版本的细化版本是否一致;【对比软件版本差异】。
  • 对比软件版本一致后,再对比网络,发现虚拟机跟公网是无法通信,但是物理机都是可以正常跟网络通信:【对比网络差异】。
  • 取消虚拟机网络的限制,发现软件可以正常的打开使用了,问题原因是该软件打开后会自动跟公网的服务器做版本校验,必须校验通过后才可以正常的使用。

4、逆向思维分析法

因果分析法是从问题的结果或影响出发,推导可能的原因和解决方法的方法。具体步骤如下:

  • 确定问题的结果或影响:明确问题的具体结果或影响逆向。
  • 推导可能的原因:从问题的结果或影响出发,逆向推导可能导致问题的原因。
  • 提出解决方法:根据逆向推导的结果,提出相应的解决方法,以解决问题的根本原因。

适用场景:断网查原因、有明确报错信息、客户操作过后出现问题的情况下分析可能的因素,快速解决问题。

例子:

例子1:客户说sangfor vpn对接不起来,需要协助。

对接协商过程:

(1)、分支通过指定的vpn线路,去请求总部TCP4009(默认),然后认证账户(账号密码、证书、共享秘钥)并交互信息(子网信息、加密算法、内网服务、传输协议等)

(2)、协商成功后,后续的业务交互就使用之前确认的传输协议,发起对应协议4009端口的数据交互。

正常排查步骤

(1)、检查我方对接使用的IP与对端对接使用的IP互访是否正常--ping测试以及分支te1net总部4009端口是否通。

(2)、检查对接SANGFOR VPN的线路是否激活-总部与分支都需要。

(3)、检查vpn内网接口是否配置了-需要配置好vpn内网口vpn服务才能起来。

(4)、检查总部配置的分支用户密码与分支用来接入的用户密码是否正确、共享秘钥是否一致。

日志提示webagent共享密钥或用户密码错误?

这种就是两边配的不一样,可以重新配置一下查看是否恢复。

日志提示加密算法不匹配,用户算法ID:xxx

分别点开总部、分支用户管理中加密算法的下拉列表,找到总部和分支都支持的算法,并在总部用户管理中选择该算法即可。

构建清晰的排障思路,从而达到快速解决问题能力。

这篇关于排障思路分析归纳的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071092

相关文章

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

MyBatis-Plus中静态工具Db的多种用法及实例分析

《MyBatis-Plus中静态工具Db的多种用法及实例分析》本文将详细讲解MyBatis-Plus中静态工具Db的各种用法,并结合具体案例进行演示和说明,具有很好的参考价值,希望对大家有所帮助,如有... 目录MyBATis-Plus中静态工具Db的多种用法及实例案例背景使用静态工具Db进行数据库操作插入

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维