网络故障排查,基本上对于网络工程师、运维及技术开发,都是日常见面但又颇具挑战的工作,也几乎是大家的基本能力。
尤其是对服务端工程师来说,一个功能上线后出了问题,能快速定位、排查、解决十分必要,这也是为什么经常面试时会考 HTTP、TCP 协议相关的内容,你总要弄清楚网络传输的底层逻辑。
程序本身还好排查,主要是因为程序在自己这边,只要花时间总有希望搞定。网络的难度,一方面是领域不同,很多专门写程序(特别是偏上层的应用)的工程师,对网络很不了解;一方面网络是双方的事,也就是客户端和服务端,还包括中间路径上的设备等,“变量”更多....
当然也有一波优秀的 “SRE”(Server Restart Engineer),遇到问题先上“重启大法”,也许也能搞定不少问题。但是,根因依然是未知,即使问题暂时消失了,不知道什么时候,它又会再次到来,然后再次重启......
所以,能否快速解决网络问题、将损失降到最小,就体现真正的技术实力了。
网络排查能力如何提升?
无他,刻意练习和经验积累。就我自己来说,一般是习惯防患于未然,将一切网络问题扼杀在摇篮里,所以经常关注一些网络故障排查的案例和解决办法。也整理了一些学习方法:
提升网络排查能力,不单单需要扎实掌握网络各层知识、提高排查视野,还要精进排查技术、完善知识体系,才能灵活运用排查工具和解决实际问题。
上面这个学习方法,来自我几年前关注的一个博主「杨胜辉」,他长期在博客上分享自己的排查经验,通过他对网络故障实际案例的解析,我学习了很多排查思路以及排查工具使用技巧。
在他的经历分享中,说他有一个小习惯:每处理一个问题就开一个文件夹,里面放上相关的日志、抓包文件等,当时记录有 500 个文件夹之多,逐步形成了对于“网络排查”这个宏大主题的一些自己的实操经验和方法论。
(图虽小,但懂自懂.....膜拜大佬)
杨胜辉目前是 eBay 中国卓越技术中心基础架构部门的运维经理,主要负责 eBay 全球的流量管理业务,推动 Kubernetes 在 eBay 流量管理场景中的落地。
而网络和应用的关系是十分错综复杂的,所以他在这方面积累了很多鲜活的案例、接地气的排查经验,不是单讲理论或工具,而是围绕「案例」这个核心,分析排查思路 → 聚焦工具使用 → 深入关键技术点,最终把网络知识带你系统地串下来,还有 Wireshark、tcpdump 等工具的使用技巧,可以说是案例、策略到技巧,全面提升我们的网络排查能力。