本文接续之前的文章:应用交付工程师Troubleshooting经验分享

前面讲述了设备登录管理以及可能遇到的网络问题,下面继续讲述4-7层配置及调试中可能遇到的问题:

(一)服务器负载均衡

1.    虚拟服务器(VIP)访问不通

常常有人打来电话,一开口就是我配了VIP后,为什么访问不通呢?这是个很低级而操蛋的问题,我知道你想问为什么访问不通?但一没告诉网络结构是怎样,二没告诉你是怎样配的,三没告诉你已经做了哪些分析和调试,鬼才知道是为什么。但是不解决是不行的,因为打给你电话的可能是客户,所以我们必须要整理思路,循循善诱。

1)    配置正确吗?

这个是首先要检查的,是自己在现场解决问题,就需要自己细心检查,如果自己搞不定,请人帮忙一定要先把你做的配置发给别人,并且说清楚如下几样事情:

l  客户需求是什么? l  网络拓扑是怎样的?(网络拓扑直接关系到应当如何配置) l  服务器是什么应用,什么系统?(不同的应用有不同的特点和不同的配置方式) l  用户访问流程 (越详细越好)

2)    服务器的服务是起来的吗?

总有这种情况,你的服务器是加电的,但服务是否起来了,可能没留意,所以第一步从负载均衡设备角度先确定服务是否起来了,检查方法:

l  如果设置了ICMP健康检查,检查设备Ping服务器看是否成功。(ICMP健康检查一般配置在Server下面,其他健康检查一般配置在端口下面,若Server检查为down,该所有应用都为down,所有若服务器禁Ping,则只在端口下面设置健康检查,不要用Ping检查服务器地址) l  去服务器上查看服务是否在运行 l  在负载均衡设备上查看server状态:show slb server l  在负载均衡设备上用telnet命令探测服务端口,例如:telnet 1.1.1.1 80,若有响应,则服务端口是起来的。 l  以上其实还不够,对于一些三层架构的平台,web服务器端口可能起来了,但应用服务器或者数据库服务器可能有问题,所以还有个检查的办法是直接访问服务器操作一下,确认服务器操作没问题。

3)    服务组是UP的吗?

设备健康检查看到服务器的服务是up的,但访问仍然不通,这时候需要继续确认服务组是否up,毕竟VIP关联的是服务组,只有服务组up,VIP才会up。

l  检查服务组状态:show slb service-group

l  如果上面显示相应服务组的检查为down,检查服务组中是否单独配置了健康检查,可能跟健康检查有关。

4)    健康检查

一般负载均衡设备都内置了4-7层各种常见协议的健康检查,要单独配置健康检查根据模板自己配置一个即可。有些负载均衡设备(例如A10)对于服务器缺省带四层的健康检查,若不自己对服务组手工另配健康检查,则默认沿用服务器健康检查的结果。而有些设备必须手工配置健康检查。所以健康检查问题可能如下:

l  自己创建的健康检查正确吗? 例如http健康检查要get一个url,你填的url根本就不存在,自然检查不成功。再如一些要求比较复杂的健康检查,要求多个条件进行逻辑与和或混合判断的,往往自己创建的健康检查就不正确,需要仔细调试。 l  服务器或者服务组配的是正确的健康检查吗?经常见到有人在服务组里面配了个ping的检查或者把健康检查配错,例如这不是http服务,但配了个http的健康检查。或者某个健康检查配的是对指定端口的检查,但把他用在了其他端口下面等等。 l  Port 0 仍然保留了健康检查,0代表所有端口,假设你保留了tcp的健康检查,设备可能去探测端口65535,该端口根本就不存在,健康检查自然不会成功。 l  某些特殊的服务不响应你的健康检查,这种情况确实存在,解决的办法只能根据服务器的要求,自己编写一个健康检查脚本去检查它才能成功(该功能只有少数设备能做)。 l  健康检查不停地报up/down, 这种问题很难判断,一种是情况是服务器压力过大,导致有时不能及时响应,另一种情况就比较复杂了,服务器上不知道配置了什么安全软件或者检查机制,导致健康检查不正常,这种情况需要客户自己去检查服务器,负载均衡设备除了多试几种检查策略之外,基本上没有其他可调试的办法。

5)    是否需要配置snat?

如果负载均衡设备是旁路接入,就必须考虑是否要做源地址转换。这基本上要成为本能反应。还有一种情况,如果服务器直连到负载均衡设备,或者虽然是负载均衡设备旁挂接入,但服务器网段跟客户端网段不同,而服务器指的网关是负载均衡设备地址,这个时候是可以不做snat的。需要配snat而没配基本上会出现在一些经验较少的工程师身上,一旦出现这种情况,访问肯定有问题。

6)    会话保持

负载均衡配置三部曲:分发算法,健康检查,会话保持,再加上一个是否要做源地址转换,这些是基本要素,要时刻在心,在做配置的时候就应该本能想到,这些要不要配,怎么配?而不是出问题的时候,才检查到原来这个没有配。一般来说除了一些仅仅提供浏览业务的服务器,例如各大网站的新闻频道等等,客户服务器涉及到用户登录才能操作的系统,那是必须要配会话保持的。至于配了会话保持后,分发是否均衡,以及如何均衡,我们另找专题讨论。

7)    HTTPS证书

如果对外发布的服务是HTTPS,而访问VIP却无法访问,首先检查负载均衡设备上配置的vport协议类型,如果配置的是port 443 tcp,那么负载均衡设备是按照TCP协议来处理,SSL的加解密是由客户端跟服务器之间完成,如果配置的是port 443 https,那么就要检查你在443端口下配置证书模板了吗?不配证书,负载均衡设备无法完成跟客户端之间的SSL交互,你的访问自然不通。如何导入和配置证书模板,可以参看其他文章。

2.    服务器4-7层问题Troubleshooting总结

以上描述多是基本问题的Troubleshooting,更多的疑难问题需要结合自己的经验和用户的应用特点专门分析。不过Troubleshooting的思路是一致的,具体做法总结如下:

l  明确网络拓扑,首先确保二三层工作没问题:网络互连,路由无问题。 l  检查真实服务器状态:show slb server l  检查服务组状态:show slb service-group l  检查虚拟服务器状态:show slb virtual-server l  检查Log,分析Log中的告警信息。 l  万能工具:抓包,无论是二三层,还是四七层的访问,通过抓包可以实时跟踪某个访问的转发处理细节,很多情况下,我们遇到的问题无法从配置以及基本检查中获得原因,这个时候抓包分析是最有用的,例如:用户反映某客户端访问某个Web服务有异常,那么按照如下方式抓包: Debug packet l3 ip <客户端IP> l4 tcp 80 count 0 Debug monitor 客户端IP访问目的端口为80的包都会被记录下来。对于抓包来说,不但是要会抓包,更重要的能够对抓包内容进行分析,这考验的是你对TCP/IP协议知识的深刻理解。

(二)链路负载均衡----容后再续

(wyl)

转载于:https://blog.51cto.com/virtualadc/1188328

应用交付工程师Troubleshooting经验分享2相关推荐

  1. 秋招在即,你准备好了吗?BAT算法工程师面试经验分享。

    本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善. 一 ...

  2. Java程序员春招三面蚂蚁金服,1-3年Java开发工程师面试经验分享

    前言 为什么互联网资讯这么发达,但是没有出现技术人才井喷? 为什么会出现应届生薪资倒挂多年老员工的现象? 这个世界有太多的现象都可以用**"二八定律"**来解释. 20%拿着高工资 ...

  3. 2015阿里系统工程师面试经验分享(广州站)

    这篇文章的源处是:http://user.qzone.qq.com/794884160/blog/1411125641.这个是在签意向书认识的同事,他把面试经验写在QQ空间,经过他的同意后,我把这篇文 ...

  4. 2015阿里系统工程师面试经验分享

    这篇文章的源处是:http://user.qzone.qq.com/794884160/blog/1411125641.这个是在签意向书认识的同事,他把面试经验写在QQ空间,经过他的同意后,我把这篇文 ...

  5. java工程师面试经验分享1-面试准备

    目录 前言 原因分析 面试准备: 1.复习 2.面试题&笔试题 3.简历 4.平台 1.很多朋友说我投了简历但就是一直没有面试通知. 2.很多人会问:我挑公司也需要时间,哪有时间投这么多家呢? ...

  6. 3年Android开发工程师面试经验分享,先收藏了

    前言 程序员这个行业,日新月异,技术体系更新速度快,新技术新框架层出不穷,所有的技术都像是一个无底洞,当你学得越多就会发现不懂的越多,不懂的越多,需要学习的就更多. 因此,一旦选择了这个行业,就意味着 ...

  7. 干货!软考中级网络工程师备考经验分享

    关于复习备考,一定要制定一个合适自己的学习计划,有计划的复习才能事半功倍. 学习计划的制定 根据自己的实际情况,比如是科班还是非科班,空闲时间是否多. 一般建议提前三到四个月开始复习. 非科班的如果上 ...

  8. AI算法工程师笔试经验分享 | 【是你等的那一篇推文吗?】

    对于应届生来说,虽然来学校招聘的企业非常的多,特别是对于C9联盟.卓越联盟以及985和211,双一流等,大公司和好企业真的是特别恐怖,但是无论来的公司再多,如果没有好好准备也会失之交臂,机会就只有一次 ...

  9. 安卓rom开发教程!安卓工程师跳槽经验分享,吐血整理

    背景 经常有网友在知乎问答提两个问题:"现在学习移动开发还有前景吗?""开发还有什么可以研究的?".网友回复:"现在还学移动开发?如同49年加入国军! ...

最新文章

  1. 03-Java的基础语法
  2. 不再受限于数据集和硬件,下一代 ML 软件如何构建?
  3. 苹果A15能征服原神?我劝你还不如买个散热背夹
  4. 算法导论 第六章 堆排序 习题6.5-8 k路合并排序
  5. hdu 1253 胜利大逃亡(BFS)
  6. java date 操作类_JAVA时间操作类常用方法汇总
  7. 【CSU - 1023】【HRBUST - 1039】修路(二分,枚举)
  8. rhel5之光盘更新终结篇
  9. 怎样在log4j.xml配置文件中引入变量:小公司经验较多的我和阿里UC等大公司经验较多的Boss,一些技术交流和探讨...
  10. c语言第三章作业题答案,c语言第三章简单练习题及答案.doc
  11. php 5.5 sqlserver,thinkphp5 连接sqlserver windows
  12. ANSI, unicode, UTF-8编码详解
  13. uni-app微信小程序——商城(6)——我的主页
  14. Python玩转图像格式转换
  15. 程序员的发展之道---海贼王(山治)
  16. 构筑企业供应链高效协同优势,智能供应链系统助推汽车服务行业数字化订单管理
  17. python大数据书籍推荐-大数据入门书籍推荐《Python 大数据基础》
  18. 寡言,而心存一片海。
  19. 加班费的计算方法和标准
  20. 基于Labview平台的滚动轴承故障分析与噪声评价系统

热门文章

  1. bzoj 1029 贪心
  2. nopcommerce笔记3 还可以控制什么
  3. yolov3从头实现(四)-- darknet53网络tf.keras搭建
  4. Tesseract试用过程及结果分析
  5. php扩展介绍,初步介绍PHP扩展开发经验分享
  6. android gps导航省电,具有省电功能的gps导航系统及其省电方法
  7. php脚本日志文件,php脚本-定期删除日志文件,删除历史日志 保留最近7天
  8. python海龟作图好看图案_python海龟绘图,其实python也很强大,这些技能你知道吗?...
  9. pandas 导入excel_三行Python代码,合并多个Excel文件
  10. java正则替换数字_Java 正则表达式,替换图片名称,替换数字,和谐用语,复制文件...