提高系統(tǒng)故障排查效率的五法寶
譯文【2013年5月16日 51CTO外電頭條】但凡在IT行業(yè)干過(guò)一段時(shí)間、哪怕是只工作幾天的朋友,應(yīng)該都會(huì)對(duì)這樣的狀況有所了解:關(guān)鍵性任務(wù)生產(chǎn)系統(tǒng)突然之間無(wú)法正常工作,而我們卻完全不知道這一切發(fā)生的原因,以及如何著手加以修復(fù)。
這些可怕的事情往往猛然出現(xiàn),粗暴地打斷我們的項(xiàng)目會(huì)議、應(yīng)用程序展示以及系統(tǒng)升級(jí)等安排——這也正是IT部門(mén)存在的意義,并不是每個(gè)人都有辦法解決突如其來(lái)的難題。
對(duì)看似無(wú)章可循的問(wèn)題進(jìn)行故障排查可以說(shuō)是世界上最緊張且難度、強(qiáng)度最大的工作之一。關(guān)鍵性任務(wù)系統(tǒng)的計(jì)劃外停機(jī)事件即使在規(guī)模最小的機(jī)構(gòu)當(dāng)中也是一項(xiàng)不容忽視的大事,需要對(duì)同事與管理層進(jìn)行嚴(yán)格排查;而隨著企業(yè)規(guī)模的不斷擴(kuò)張,停機(jī)所導(dǎo)致的后果也將越來(lái)越嚴(yán)重,狀況自然就變得更糟。
這種無(wú)形的壓力往往令技術(shù)人員身心俱疲,甚至讓最出色的工程師不堪忍受而犯下愚蠢的低級(jí)失誤,這將進(jìn)一步導(dǎo)致問(wèn)題復(fù)雜化、最終延長(zhǎng)停機(jī)時(shí)間。
要在重重壓力下保持冷靜絕非易事,即使是無(wú)數(shù)次面對(duì)困境的老手也很難做到這一點(diǎn)。不過(guò)這里我們將與大家分享五條簡(jiǎn)單規(guī)則,各位可以嘗試將其添加到自己的緊急故障排查流程當(dāng)中,借以更快整理決議、查明停機(jī)原因,最終避免事情變得更糟。
1、避免二次損害
當(dāng)某個(gè)看似難以捉摸的難題出現(xiàn)時(shí),我們的本能反應(yīng)肯定是快速投身問(wèn)題分析工作以求速戰(zhàn)速?zèng)Q、盡快讓系統(tǒng)恢復(fù)正常。雖然這樣的方式經(jīng)常能夠解決問(wèn)題而且起效神速,但同時(shí)也很可能把情況推向令人難以置信的惡化深淵。故障排查手段包括重新啟動(dòng)不穩(wěn)定系統(tǒng)、嘗試自動(dòng)記錄數(shù)據(jù)庫(kù)、文件系統(tǒng)修復(fù)等等,這些方式往往確實(shí)能搞定難題并讓系統(tǒng)重回生產(chǎn)軌道,但同時(shí)也沒(méi)準(zhǔn)導(dǎo)致數(shù)據(jù)恢復(fù)努力付之東流,毀掉確定故障根本原因的機(jī)會(huì)甚至大大延長(zhǎng)關(guān)鍵性系統(tǒng)的停機(jī)時(shí)間。
與本能反應(yīng)不同,我們建議大家首先采取看似最不自然的處理方式:后退一步,考慮我們要怎樣撤銷(xiāo)所有針對(duì)系統(tǒng)修復(fù)所做出的操作與努力。要讓自己的修復(fù)工作能被順利撤銷(xiāo),大家可能需要進(jìn)行配置備份、保存虛擬機(jī)或SAN快照、留存也許會(huì)丟失或被覆蓋的日志文件副本、將可能受到影響的數(shù)據(jù)復(fù)制到正常系統(tǒng)當(dāng)中等。之所以這種方案與我們的直觀(guān)感受相悖,是因?yàn)槊鎸?duì)停機(jī)所導(dǎo)致的業(yè)務(wù)癱瘓壓力,似乎沒(méi)人愿意把時(shí)間浪費(fèi)在這些好像無(wú)關(guān)緊要的事情上--畢竟它們不能對(duì)解決難題起到任何直接作用。然而我們之所以要堅(jiān)持這種處理思路,是因?yàn)樗鼘?shí)現(xiàn)了兩個(gè)非常重要的目標(biāo)。
第一,如果我們的故障排查工作最終令情況進(jìn)一步惡化--例如我們決定重啟服務(wù)器但設(shè)備干脆無(wú)法運(yùn)轉(zhuǎn)--良好的撤銷(xiāo)準(zhǔn)備工作能幫大家在新系統(tǒng)中保留現(xiàn)有數(shù)據(jù)。
第二,如果大家的緊急處理方案不知何故竟成功解決了難題,上述工作也保留了一切可用于重現(xiàn)故障的數(shù)據(jù),這樣我們就能在閑暇時(shí)慢慢研究問(wèn)題出現(xiàn)的原因。如果說(shuō)有什么比面對(duì)難題時(shí)束手無(wú)策更糟糕,那一定是解決了難題但卻不知道自己如何或者為什么能取得成功。在這種情況下,我們不僅沒(méi)法給焦急等待結(jié)果的同事與企業(yè)領(lǐng)導(dǎo)一個(gè)明確的交代,而且也不能保證這類(lèi)情況不會(huì)再次發(fā)生。
2、認(rèn)真記筆記
大家必須做的第二件事是:詳細(xì)記錄自己的觀(guān)察結(jié)果以及嘗試過(guò)的故障排查操作步驟,如何可以的話(huà)最好把時(shí)間點(diǎn)也標(biāo)注在內(nèi)。與第一條規(guī)則類(lèi)似,記筆記這類(lèi)建議往往讓人感覺(jué)是在浪費(fèi)本身就極度匱乏的處理時(shí)間,但從長(zhǎng)遠(yuǎn)角度來(lái)看,這樣的好習(xí)慣能為我們未來(lái)的運(yùn)維工作節(jié)約大量時(shí)間與精力。
首先,記筆記能防止我們一遍遍嘗試已經(jīng)被證明無(wú)效的挽救措施,也就是俗稱(chēng)的“兜圈子”--當(dāng)面對(duì)巨大壓力時(shí),這類(lèi)情況往往時(shí)有發(fā)生。其次,如果大家需要與供應(yīng)商方面接洽,筆記也能幫我們建立一套全面的列表,提醒自己哪些廠(chǎng)商已經(jīng)溝通完成,這樣可以避免在慌亂之中理清情況。第三,如果大家打算查閱錯(cuò)誤日志,那么可以在筆記中列出自己執(zhí)行修復(fù)操作的時(shí)間,并將其與日志中的時(shí)間戳相比照。如果不這么做,大家將無(wú)法分清日志中哪些條目是系統(tǒng)運(yùn)行記錄、而哪些是自己曾經(jīng)做過(guò)的修復(fù)操作,并因而不得不重復(fù)故障排查流程--這樣無(wú)疑會(huì)延長(zhǎng)問(wèn)題處理耗時(shí)。
3、仔細(xì)研究
當(dāng)被壓力逼到絕望的邊緣時(shí),大家很可能發(fā)現(xiàn)自己開(kāi)始不顧一切尋找救命稻草--換言之,希望在谷歌上找到答案。而且除非我們碰上了百年一遇的罕見(jiàn)錯(cuò)誤,否則網(wǎng)上總會(huì)有一堆帖子聲稱(chēng)他們也經(jīng)歷過(guò)類(lèi)似的問(wèn)題,并且最終得到了順利解決。
需要強(qiáng)調(diào)的是,這時(shí)候大家務(wù)必要對(duì)此類(lèi)看似對(duì)癥的網(wǎng)上信息進(jìn)行仔細(xì)研究。在很多情況下,我們會(huì)發(fā)現(xiàn)雖然故障表現(xiàn)完全相同,但實(shí)際情況卻大相徑庭。我曾親眼目睹很多運(yùn)維人員浪費(fèi)大量時(shí)間來(lái)嘗試一種與當(dāng)前問(wèn)題毫不相關(guān)的解決方案--事實(shí)上只要靜下心來(lái)認(rèn)真閱讀問(wèn)題描述,大家應(yīng)該能很容易地回避這類(lèi)費(fèi)力不討好的低級(jí)失誤。
4、積極進(jìn)行信息分享
如果大家身為問(wèn)題處理團(tuán)隊(duì)的一員,或者需要面對(duì)一大群因工作中斷而憤憤不平的用戶(hù),肯定會(huì)發(fā)現(xiàn)溝通在這種情況下?lián)碛袠O其重要的意義。一方面能幫助用戶(hù)了解我們正在做什么(當(dāng)然,前提是確實(shí)要做點(diǎn)什么),另一方面則有助于避免團(tuán)隊(duì)成員之間各自為戰(zhàn)所導(dǎo)致的混亂局面。
在大型團(tuán)隊(duì)當(dāng)中,最理想的開(kāi)局策略是指派一位溝通伙伴,我們要及時(shí)向他匯報(bào)自己的工作進(jìn)展;這位伙伴則負(fù)責(zé)把得到的消息通知給受影響的用戶(hù)群體或其他團(tuán)隊(duì)成員處,幫助大家了解當(dāng)前的處理進(jìn)度。
5、做好準(zhǔn)備
雖然我們沒(méi)辦法為那些無(wú)法預(yù)見(jiàn)的難題做什么準(zhǔn)備,但仍然可以從現(xiàn)在開(kāi)始組織一點(diǎn)應(yīng)對(duì)步驟,幫助自己在面對(duì)可能出現(xiàn)的情況時(shí)節(jié)約時(shí)間。
舉例來(lái)說(shuō),如果大家正在進(jìn)行網(wǎng)絡(luò)問(wèn)題的故障排查工作,那么把一臺(tái)配置了協(xié)議分析工具(例如Wireshark)的筆記本接入核心交換機(jī)絕對(duì)能幫上大忙。在網(wǎng)絡(luò)問(wèn)題出現(xiàn)時(shí),我們一般只需要15到20分鐘就能讓這套分析工具投入運(yùn)作;但如果事前沒(méi)有準(zhǔn)備,混亂之間我們可能很長(zhǎng)時(shí)間都搞不定配置工作,并最終導(dǎo)致停機(jī)時(shí)間大大延長(zhǎng)。集中化網(wǎng)絡(luò)監(jiān)控與日志記錄工具也很重要,它們能簡(jiǎn)化應(yīng)用程序與網(wǎng)絡(luò)事件之間的關(guān)聯(lián)分析,并快速將看似復(fù)雜的難題定位至核心原因。
總結(jié)陳詞
故障排查是一項(xiàng)壓力極大的工作,進(jìn)行過(guò)程中毫無(wú)樂(lè)趣可言,但完成之后則能幫助IT團(tuán)隊(duì)積累寶貴的處理經(jīng)驗(yàn)。相對(duì)于那些在房間或數(shù)據(jù)中心內(nèi)進(jìn)行的安全工作來(lái)說(shuō),故障排查會(huì)帶來(lái)極大的恐慌感并引發(fā)腎上腺素飆升。此外,壓力的存在還可能誘發(fā)我們犯下愚蠢的低級(jí)失誤--要克服這種白癡般的本能,我們需要克制自己快要爆發(fā)的滿(mǎn)腔怒火、強(qiáng)迫自己以有條不紊的方式逐一開(kāi)展嘗試。
現(xiàn)在相信大家已經(jīng)了解如何在腎上腺素的作用下繼續(xù)保持冷靜心態(tài),接下來(lái)要做的就是將其付諸實(shí)踐。
原文鏈接: