故障集合-外部故障

外部业务系统故障

背景

本文长期更新一些我周边部门的故障案例, 尽量挑一些我打听得比较清楚,且具有代表性的出来。

案例1: F5硬件负载均衡器CPU满了,原因竟然是ssl加密

我之前有一个项目案例, 就很有意思,移动的手机APP客户端的故障。

背景:

  1. 大家一般月初月末才会想起来登录移动的手机营业厅APP看看话费和账单, 于是月初月末流量峰值就普遍很高;
  2. 每隔一段时间会进行APP版本升级,并且较旧的版本就不让用户登录, 需要更新APP版本才让登录;
    这就造成了月初很多人都需要下载更新APP。
  3. 首屏APP提升更新时, 需要下载一个 100 多M 的包,走的是 https 链路;ssl 卸载配置在 F5 上;
  4. 移动公司一个资源池的一个区域内一般也就2台公共F5,很多业务系统合用;

现象:
某月末早上移动某资源池很多业务系统同时出问题了,现象就是内部监控一切正常, 外部测业务就是总断开连接和响应速度缓慢,最后排查到网络侧,说是资源池公共的 F5 设备抗不住了, CPU已经100%满负荷了。

倒不是流量大了抗不住,而是因为app下载是https链路,而ssl卸载在F5上,大流量的加解密造成的CPU使用率满了;找到问题了就好办, 不能因为一个业务系统拖累大家, 于是领导一拍板,给客户端系统单独采购两台顶上。

第二个月其它业务系统没事,但客户端还是因为这个问题不行了;
这个硬件F5是移动新资源池建设刚上架的,基本算是顶配了(F5-BIG-LTM-i10000), 还有专门硬件ssl卡支持,也支撑不住。
而且平时月中的时候正常CPU使用率也就 1%-5%,也不好继续再增加设备了。

最终解决办法
将证书后置, 单独用几台服务器部署 nginx+证书 来进行下载链路的https卸载。

建议小流量的情况可以在前面的 proxy 上卸载ssl,很省事;
但有下载的场景还是考虑单独的服务器支持ssl卸载吧。

案例2: 执行 hostname -i 查看ip地址引发故障

某同事登录服务器后, 想看一下服务器当前的 ip 地址有哪些;
于是执行了 hostname -i, 没有看到相关内容, 于是又执行了 ifconfig, 看到了, 然后退出终端。

10分钟后接到监控组的电话, 说我们项目的数据库挂了, 我很诧异, 连忙打开网站, 点了几下, 觉得没问题, 然后看了一眼我们自己的内部监控, 没有异常,于是告诉监控组可能是误报, 我们自己先看看一下。

于是登录数据库服务器,刚连接上就感觉哪不对,仔细看了一眼发现主机名不对了, 主机名变成了 ‘-i’。
立即找人问, 谁改了这个主机的名字,没人说改了,于是看 history, 确实是有执行,那么立马开会复盘。

结论

  1. 某同事反映过来,确认执行了 hostname -i 想看一下 ip 地址。
  2. 这台主机是一个 hp-unix 的系统, 命令和 linux 的有区别, hostname 后面的参数就是新的主机名。

后续: 反复宣灌非必要不root的思想。

微信搜索IT运维小秋

Licensed under CC BY-NC-SA 4.0
转载或引用本文时请遵守许可协议,知会作者并注明出处
不得用于商业用途!
最后更新于 2021-06-05 00:00 UTC