学一项技术,可能只需要几个小时,掌握一种网络协议也用不了几天,而养成解决问题的思路却需要经年累月的练习和思考,这个过程往往伴随着尴尬、纠结,甚至是痛苦。在三国演义当中,刘备因关张二人之死迁怒于孙权,率大军攻东吴,东吴节节败退,让孙权有了投降的想法,但是孙权觉得投降太过屈辱,子布对孙权说:“帝王的度量都是由世间常人不能忍受的屈辱撑大的”,我觉得一个技术人的水平也是如此,是由各种各样的难题、各种种样的痛苦和纠结给“堆”起来的。

 

 


+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师
个人网站:www.zhanghehe.cn
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


运维故障处理方法论

前言

学一项技术,可能只需要几个小时,掌握一种网络协议也用不了几天,而养成解决问题的思路却需要经年累月的练习和思考,这个过程往往伴随着尴尬、纠结,甚至是痛苦。在三国演义当中,刘备因关张二人之死迁怒于孙权,率大军攻东吴,东吴节节败退,让孙权有了投降的想法,但是孙权觉得投降太过屈辱,子布对孙权说:“帝王的度量都是由世间常人不能忍受的屈辱撑大的”,我觉得一个技术人的水平也是如此,是由各种各样的难题、各种各样的痛苦和纠结给“堆”起来的。

经常有那么一瞬间,我会发现有很多感觉是无法表述的,思考也无法触及,就比如你在模拟器做了很多的实验,但是在实际的生产环境当中却没有经验,但面对生产环境的故障时,还有可能会陷入其中,我们会发现在模拟器上我们是上帝视角,而在实际的生活环境当中,我们是用户视角,就是有很多事情如果你没有亲身经历过,你就无法有真正的经验。

莫慌

网络工程师也好,运维也罢,总是会遇到各种各样的紧急的故障,之前在做工程师的时候,遇到过最紧急的事是vmware无法连接存储,导致vmware上的虚拟机都无法正常工作,有好几个业务都在上面跑着,客户一直抱怨我们,而且老板也来了都站在身后,一个劲的催,我清楚的记得,初出茅庐的我敲打的键盘的手都有些发抖……

紧张没什么好怕的,最关键的是人一旦紧张了,就很难发挥出他应该有的水平了,大脑一片空白,血液都流向四肢。我最讨厌别人告诉我不要慌张,要镇定,冷静,闭嘴!我靠!废话!!我难道不知道吗!!!

那么到底有没有方法,让我们能不慌张,我苦苦探索良久,发现一些可行的方法,分享给大家。

事前:

  • 平时多锻炼,这个方法亲测有效,我刚毕业的时候做入职培训,当众说话时紧张的不行,出丑出大了,后来我接触到了跑步,跑步跑了一年左右,又有一次我给新来的工程师做入职培训的时候,我本以为我会紧张 ,结果紧张的情绪好像是没有了,好奇怪,那一场培训是我的巅峰状态,在培训的过程当中谈笑风生,游刃有余,效果非常好。锻炼可以减少紧张的情绪是有科学依据的,有兴趣的同学可以去搜索一下相关的论文。
  • 对自己好一点,对世界好一点,可以非常有效的减少紧张和焦虑的情绪,这是我这些年摸索出来的终极法门。我们从打扫卫生说起,你把你的办公桌周围打扫的很干净,整齐,就会感觉心情很好,做事也有状态,这就是反馈,你打扫整理周围,周围的世界给你反馈,你的情绪会变好,自尊水平会提升,遇到事情的时候由于自尊水平特别高,所以往往不太在意别人的看法,水平也能正常发挥。我以为这是我独有的发现,为此沾沾自喜了许久,后来看到《扫除道》一书,好吧,我承认 ,有人很早就知道这个方法了……
  • 别骄傲,保持对周围的尊重。这也是亲身体验,我发现只要有一骄傲,一装13,遇到事情的就容易翻车;有一次客户那边的办公室休息,一个美女问我:“你会安装windows系统吗?”,我不知道安装过多少回了,骄傲的情绪立刻起来了,我立刻打保票说:“美女,你放心,30分钟之内保证完事!”,结果啪啪打脸,本以为手到擒来的小事,结果因为驱动问题却一直安装失败,当时我就紧张不行,我发觉自己被骄傲占据了身体之后,我关注的点不再是问题本身,而变成了如何讨好那个女生,我的紧张的原因竟然变成了千万不能让美女失望!啊!这该死的本性!当我发觉之后,我的关注点重新聚焦到问题本身上,结果很快发现了问题的症结,PE太老了,机器太新了,我重新做了一个最新PE就好了。你可能想问我事后怎么样了,事后我加了那个美女的微信,通过看她的朋友圈我发现她可能没有表面上那么清纯可人,于是我放弃了非分之想,从此没有再联系过她。

上面都是在事情发生前,都是我自己的亲身体会,那如果一时无法解决的事情已经发生了,我们又该如何处理呢?如果你已经认真的践行了上述几点的话,想必此时的你已经稳如老狗。

事后:

  • 抽一根,这绝对是相当中肯的建议,当你遇到一时不知道怎么处理的事情时,先停一下,深吸一口气,会抽烟的出去抽根烟冷静冷静,会抽烟的人都知道,抽烟有缓解紧张的作用,其实上抽烟会让人达到一种抽离当中事情的状态。那我们不会抽烟怎么办呢?还是先放下手中的活,走一走,观察一下自己到底是什么让自己这么紧张,当你一观察自己的时候,紧张的感觉就消失了,后来我才知道,这种方法叫正念,有兴趣的同学可以去网上找一找相关资料。
  • 控制二分法,这是斯多葛学派的一个最重要的心法,简单来说,就是将当前的事情分成你能控制的,和你不能控制的 ,能控制的尽力去做,不能控制的就不要瞎担心了,担心也没有用,我还为此专门写过一篇博客: 
  • 把事情往坏处想,就算这件事我处理不好又能怎样呢?大不了被开除呗,此处不留爷,自有留爷处!当前是一个好机会,什么机会?学习的机会,把当前的事情当成你学习和练习的机会,让这件事情为你的成长“加料”,有了这样的心态,紧张感也会缓解不少。

以上这三点,也是我自己的亲身体验,前两者有都有科学依据。

观察-思考

  • 一定要仔细观察,观察故障发生的报错信息,有些报错信息会提示你如何解决,仔细查看报错信息。 收集问题出现时间点前后所有的告警、变更等相关的信息。有时候凭借足够的信息可以快速的定位问题。

  • 将问题的故障现象写到纸上,搞清楚当前要问题到底是什么?真的是我自己的的问题吗?如果排除到底是不是自己的原因?

  • 分析导致这个故障现象的原因有哪些?将原因都列到纸上,然后一个个地慢慢排除,这是仿照头脑风暴。

  • 不要轻易相信开发说的话,除非有实际的证据(代码,日志等)

  • 仔细观察日志!仔细观察日志!要搞清楚每个日志里面记录的是什么信息?而且平时没有故障的时候最好也要去查看日志熟悉熟悉,要知道正常的日志记录是什么样的?这样在意外发生的时候能快速看到异常的条目,具体可以参考我这篇博客: 

预演

如果我们对线上的业务有充分的了解,当发生故障的时候,有时候头脑预演一遍,往往大概就能猜对问题的症结所在,前提是你对业务一定要熟悉,对各种技术也要有一定深度的了解。

我通过预演就解决过好几个问题,有一次远程解决一个NFS挂载故障问题,ping、showmount探测时都没有问题,服务器端的权限设置都没有问题,但是死活都挂载不上,报错“ mount.nfs: access denied by …… ”我在头脑当中将NFS服务器相关的三个组件之间的作用和流程从头开始思考了一遍,在思考的过程当中要问自己,当前的情况符合挂载成功的前提吗?一边思考,一边验证现场的场景,最终在权限这个地方灵光一闪,ping和showmount只能证明两台主机可以通信,但是不能证明服务器就允许客户端挂载!随着这个思路向下想,最终发现客户端和服务器之间有路由,路由做了S-NAT转换,导致了客户端的挂载请求被拒绝!详细过程请看我这篇博客: 

走投无路

如果所有已知的方法都无法解决时,只能用最后一招了,备份好信息重启或重装。 可以用一些重启的方案来把故障恢复到系统初始的状态,把这个故障解决掉,这是一个非常强有力的一个故障解决方法。当然,重启前需要考虑预期外的后果,比如可能启动失败会导致更差的后果。除了重启,还可以重装 / 重建系统,从默认或正常工作的系统复制一个副本出来。

总结

当遇到已经解决的故障,最好要记录下来的,不仅仅是对自己有一个交代,而且可以写成博客,写的好可能将来出版出书,也能增加个人影响力。

我们将时间和精力出卖给老板,我们想要换取的不仅是金钱,还有经验。