前阵子有句话一直很流行,叫“知道了很多道理,却依然过不好这一生”,我们也经常拿这句话来打趣自己和身边的运维朋友。那你有没有想过,我们每天学那么多干货,看那么多书,学那么多知识,却依然解决不了实际问题呢?

这归根结底,是处理问题能力的问题!

什么是能力? 我觉得包含了对待问题的态度,以及处理问题的思路和方法。

首先说态度,运维工作中我们可能经常会遇到一些警告信息,比如偶尔的501错误,504错误等,但是,很多运维并没有在意,没错,是很多,假装看不见,不在乎,或者归咎于人品问题。 这就是态度问题。

偶尔的错误视而不见,经过长时间的积累,各种错误就会频发,比如自己运维的网站每天频繁出现500,501等错误,此时由于影响到正常使用了,所以不得不去处理解决,而处理的方法简单粗暴,直接重启服务,或者重启服务器,于是,问题暂时得到解决了,这种遇到问题不去深究原因,只靠重启解决的工作方式太多了,更有甚者,当出现问题的时候,不从自身找原因,而是抱怨网络状态不好,服务器配置不好,操作系统不好,数据库不好等等,将问题归咎于其它外在因素,或者极度推责者,也屡见不鲜。

这就是态度,如果能对问题有敏感性,能对任何小的,轻微的问题有足够的敏锐度,你就有了一个快速成长的基础。对问题的敏锐度是非常重要的。很多性能或程序逻辑上非致命的问题,在不够敏锐的时候是发现不了的,但是一旦进入特殊场景就会骤然爆发,你多一点敏锐度,就会减少这种危机的风险。同时,这种工作态度完全阻止了你的成长,如果以这种态度工作,即使你有十年工作经验,可能你仅有一年的实际能力。

优秀的运维人员和平庸的运维人员,不是看敲打键盘的速度来区分的,在遇到问题后,平庸的运维人员的解决效率,和优秀运维老鸟相比就会有天壤之别。 所谓解决效率,不外乎对故障的分析、定位,以及思考。

要分析、定位问题,那么查看日志是个起码的手段,你可能需要查看web server的日志,数据库的日志,慢查询日志,binlog日志,php的错误日志等等,看似简单不过的处理问题手段,真正能够静心下来查看的人真的不多,线上出问题瞎猜的,压根连日志都不看的大有人在。看日志不仔细不完整的也大有人在,而你能去认真研究日志,其实已经超越很多人了。

发现问题之后,自然要去解决问题,问题千差万别,多种多样,谁都不可能处理过所有可能发生的问题,那么怎么去快速解决这些问题呢,我们说,搜索引擎是最好的处理问题辅助工具,你所遇到的错误信息和错误提示,通常95%都能在网上搜索到,当然,搜索到后要结合你的场景认真思考,并理解透彻,而不是照猫画虎的去处理,否则可能这次运气好就蒙对了,下次运气不好可能就会出现误删库要跑路的事情了。

说到这里,很久之前遇到过一个哭笑不得的事情,公司新入职一个运维(不知道是谁招聘进来的),某天被派到了客户那里处理问题,然后就QQ发信息给我,问怎么重启linux系统,我看到后,就回复了一句“百度一下吧”,我认为这种问题,他肯定可以自己解决,谁知道,第二天来到公司,我问他问题怎么解决的,他说自己不太懂,没找到关机的方法,所以就拔电源暴力关机了。我听到这里,默默的叹了口气,让HR请他离开了。

为什么请他离开,因为我知道他不适合这个职位,同时即使他坚守这个职位,也不会有大的职业前景。

这是个真实的事情,没有半点夸张成分,通过这个事情,我只是想说,要提高自己的能力,就要主动尝试独立解决问题,过度的依赖别人,出现任何问题都不假思索的问别人,并不能提高自己任何能力。

最后,要提高自己处理问题的能力,还要有知识的总结、梳理和归纳,你今天从网上买了一套学习视频,明天从网盘下载了40Gb的一套python课程视频,你可能下载的时候欣喜若狂,这种方式获取的仅仅是资料,这一堆冷冰冰的数据,除了能极大的满足你内心想要学习的虚荣感,别的真的毫无价值。

要让知识变热、变成自己的,是需要动手实践的,对一个问题,一类问题,以及不同类型的问题,要善于归纳整理,不断反思,尽量把每个遇到过的问题都记录下来,记录的要尽量详细,这样你经过一段时间去回头看,可能会发现不一样的处理方法和思路。如果你感觉到了这一点,那么恭喜你,你的能力又提升了一步!

我们日常遇到的问题就类似打怪升级一样,你解决的问题越多你的能力就会越强,经验自然也会越来越丰富。但人的脑袋不可能记住所有事情,将自己遇到的问题沉淀下来对以后自己查阅也有很大的帮助,就不必每次都要去查资料,自己也能够有一个索引库。

经常自己总结是提高能力的最好方式。

知识的积累,不是你处理过的就一定有积累,而是整理过的才有价值。

说了这么多,那么问题来了,怎么获取经验和能力呢,我将多年来工作经验进行了总结和提炼,写成了专栏《Linux运维大牛实战心法》,15个案例打通运维任通二脉,让案例说话:

专栏目录详情

本专栏从系统运维、安全运维、性能调优、应用运维四个方面,通过15个具体的案例分析、归纳日常运维工作中经常出现的问题,通过每个问题出现的现象、原因以及解决的思路,来带领大家学习解决问题的思路和能力,通过现象看本质,根据问题的现象,结合所学的知识,一步步抽丝剥茧,找出解决问题的思路和方法,让大家迅速提高解决问题的实战能力。提高运维职场竞争力。

第一部分:故障排查

1.Linux系统故障问题案例汇总(无法启动、忘记密码、丢失文件等) 2.偶遇"Too many open files"错误分析与处理实录 3.Linux遭遇"Read-only file system"错误分析与处理实录 4.不听话的Crontab,记一次Crontab计划任务失败案例 5.因OpenStack物理机故障引起的Linux系统无法启动案例 6.Linux系统内存又被吃光了,它去哪里了,记一次内存占用问题调查记

第二部分:系统安全

7.回顾与总结:服务器遭受攻 击后的处理措施 8.IDC服务器遭遇黑 客侵入后的解决方法与原因分析案例 9.Linux后门入 侵检测工具chkrootkit、RKHunter应用案例 10.云服务器被植入挖矿病毒的处理与原因分析案例

第三部分:性能调优

11.菜鸟运维初成长,记一次上线Linux服务器基础优化案例 12.对某电商平台动、静态网站的优化分析案例

第四部分:运维案例

13.远离MySQL的MyISAM,记一次MySQL数据库故障的处理与原因分析 14.一次Java应用OutOfMemoryError故障的处理与原因分析 15.一次Java进程占用CPU过高问题的排查方法与案例分析