案例背景
某航空公司华南客服中心,客服人员用客服系统接电话时经常出现接听失败的现象,由于客服服务器位于北京数据中心,中间涉及的网络设备较多,一直未能定位到故障原因。
故障现象
如下拓扑所示,每个客服人员桌面都会有一台电脑跟电话机,一天中会出现几次偶发故障,故障发生时,用电脑上的客服软件接听用户电话失败,如果及时改用座机接听则可成功,我们用科来网络回溯分析系统在华南客服中心广域网出口抓包分析。
故障规律摸索
客服人员可以用电脑和座机接听电话,电脑接听电话失败时,改用座机可以成功接听。
规律分析:电脑与座机是连接同一个hub上,座机可以成功接听电话说明网络连接正常,需要从电脑客服软件的角度分析问题。
故障发生时间段主要集中在中午午休后及凌晨时段,重置电脑的客服软件后也能恢复正常。
规律分析:这两个时间段的特点就是接听的电话数量比较少,很可能是空闲时间太长,电脑客服软件某些连接被终端了。
排障思路
重现故障,在科来网络回溯分析系统将客服的电脑与北京服务器之间的通信流量进行回溯、分析,寻找故障原因。
故障重现
在深圳客服中心寻找一台客服电脑,首先验证该客服电脑、座机都能正常接听电话;然后从16:12开始闲置该客服电脑,超过半个小时候,16:48再拨打该客户座机,接听失败,故障成功重现。
IP会话分析
客服电脑的IP为10.110.22.21,与北京的两台服务器有通信流量,分别是:
10.10.176.51,经确认为客服软件界面的服务器
10.10.203.155,经确认为客服软件控制插件的服务器
软件界面连接分析
从客服电脑10.10.22.21与服务器10.10.176.51通信的TCP几乎时序图可以看到,两者采用了长连接的机制,在空闲的时间,客户端每隔几秒钟就会发送一个GET的请求与服务器保持连接。
从16:12分至16:48分,每个6分钟客户端与服务器就跟新一次TCP连接,未曾中断过,因此软件界面一直能够正常显示。
控制插件连接分析
从客服电脑10.10.22.21与服务器10.10.203.155在16:12分至16:48期间只有3对TCP连接一直保持,如果这三对TCP连接没有采用长连接的传输机制,很可能会因为空闲太长时间而被网络中的防火墙等设备中断连接。
果然,客户端在空闲的2090秒(34分钟)的时间内没有发送任何保持连接的数据包,等到客服电脑重新发起接听电话请求的时候,客户端的请求已经无法到达服务器端,一直在发起重传的请求,***客服人员看到请求超时的告警提示。
故障原因分析
大部分防火墙都会将空闲时间超过30分钟的TCP连接断开,而控制进程在空闲的34分钟内没有采用长连接机制保持连接,所以被防火墙中断了,再有电话接入的时候便会出现接听失败的现象。
解决问题建议
修改防火墙的策略:增长访问北京10.10.203.155的TCP连接的空闲时间。(注:该策略实施后,偶发故障出现的次数明显下降)
优化客服控制插件程序设置,能从根本上解决问题。