大學(xué)畢業(yè)以后,我在政府機(jī)構(gòu)找到了一份管理網(wǎng)站的工作。我們的服務(wù)器都是以前各個(gè)部門(mén)自己管理的,什么類(lèi)型的機(jī)器都有,文檔基本上沒(méi)有,所以我們?cè)谡磉@些機(jī)器環(huán)境時(shí),就好像在做逆向工程一樣。我們把所有服務(wù)器都編入目錄,并納入監(jiān)控:第一項(xiàng)檢查是可用性檢查,從簡(jiǎn)單的網(wǎng)絡(luò)ping測(cè)試,到發(fā)送HTTP請(qǐng)求和檢查響應(yīng)時(shí)間。為了能有更多的信息以診斷故障原因,除了對(duì)關(guān)鍵進(jìn)程,如SSH、HTTPD、NTPD的檢查之外,又增加了對(duì)內(nèi)存、磁盤(pán)、CPU使用情況的檢查。查看這些結(jié)果,使我們對(duì)面臨的情形能有一個(gè)完整的大局觀。
偶爾人們會(huì)給我們發(fā)郵件,聲稱(chēng)他們不能訪問(wèn)網(wǎng)站。但我們檢查網(wǎng)站和監(jiān)控的結(jié)果是一切運(yùn)行正常,我們就禮貌地回復(fù)這些郵件:就我們所見(jiàn),一切運(yùn)行正常,問(wèn)題可能出在他們的PC機(jī)上,把機(jī)器重啟一下就好了。事實(shí)上,我們認(rèn)為這些情況屬于典型的PEBKAC(問(wèn)題出在鍵盤(pán)和座椅之間)。
后來(lái)有一天,老板發(fā)郵件給我,說(shuō)他在訪問(wèn)網(wǎng)站時(shí)也遇到問(wèn)題了,他急著要一些信息。我馬上跑到他的辦公室,打開(kāi)瀏覽器,輸入U(xiǎn)RL地址,什么都沒(méi)有。點(diǎn)擊重新加載按鈕,也不行。我打開(kāi)命令行窗口,輸入命令來(lái)解析服務(wù)器地址,發(fā)現(xiàn)DNS服務(wù)器沒(méi)響應(yīng)。這下我明白了,我們的監(jiān)控腳本檢查網(wǎng)站時(shí)使用的是IP地址,所以沒(méi)有檢測(cè)出問(wèn)題。我登錄到老板所在的網(wǎng)段的DNS服務(wù)器,重啟服務(wù)器,一切恢復(fù)正常。為了檢測(cè)這種類(lèi)型的問(wèn)題,修改監(jiān)控腳本,把對(duì)DNS服務(wù)器的監(jiān)控加進(jìn)去,使用nslookup檢查DNS服務(wù)器,以確保能夠檢測(cè)出這類(lèi)問(wèn)題。
幾天以后,在一次會(huì)議上又遇到了老板,我問(wèn)他現(xiàn)在還有什么問(wèn)題沒(méi)有,他答道,“大多數(shù)時(shí)候沒(méi)問(wèn)題,但在需要身份驗(yàn)證的地方還是有問(wèn)題。”我的老板是第一批訪問(wèn)受限內(nèi)容的人,這個(gè)管理站點(diǎn)需要登錄,使用存儲(chǔ)在數(shù)據(jù)庫(kù)中的用戶名和密碼。我們已經(jīng)從DNS問(wèn)題中學(xué)到了教訓(xùn),所以也把數(shù)據(jù)庫(kù)服務(wù)器納入了監(jiān)控,我們是通過(guò)向數(shù)據(jù)庫(kù)發(fā)送一條簡(jiǎn)單的SQL查詢對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢查的。所以,打開(kāi)監(jiān)控頁(yè)面,看到數(shù)據(jù)庫(kù)服務(wù)的狀態(tài)一直是綠色的。嗯,我請(qǐng)他登錄網(wǎng)站,砰,失敗了。這證明,雖然Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器都運(yùn)行正常,但由于防火墻的權(quán)限設(shè)置問(wèn)題,Web服務(wù)器仍然不能訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器。我默默地離開(kāi)了老板辦公室:由于沒(méi)有檢測(cè)到問(wèn)題,最終用戶又一次把板子打在了我們的監(jiān)控上。又一次升級(jí)了監(jiān)控腳本,增加登錄功能,對(duì)網(wǎng)站做更全面的檢查。
我一般上班比較早,在大部分用戶開(kāi)始工作之前,對(duì)系統(tǒng)做全面檢查。一天早上,我開(kāi)始收到大量的用戶抱怨,說(shuō)網(wǎng)站宕掉了。檢查監(jiān)控,沒(méi)發(fā)現(xiàn)任何問(wèn)題:所有狀態(tài)都是綠色的。我請(qǐng)用戶再試試,還是不能訪問(wèn)。我告訴他們檢查DNS、網(wǎng)關(guān),以及所有我能想到的事情,毫無(wú)效果。我甚至重啟了服務(wù)器,雖然一切正常。
在翻來(lái)覆去地檢查過(guò)配置文件和日志文件之后,我決定打電話給網(wǎng)絡(luò)組的同事,他正好與抱怨用戶在同一棟樓上。“嗨,可以看一下我們的網(wǎng)站嗎?”我問(wèn),回答,“不。”我想他是在跟我開(kāi)玩笑,所以就溫和親切地把問(wèn)題又重復(fù)了一遍。“不,”再一次的回答,接著又說(shuō):“這棟樓的一根動(dòng)力線掉電了,一臺(tái)核心交換機(jī)停掉了,所以我沒(méi)辦法幫你看。”
為了找到問(wèn)題出在哪兒,我花了一個(gè)多小時(shí)。沒(méi)人費(fèi)心告訴我們這個(gè)小組停電了,要是我早點(diǎn)知道該多好。后來(lái)我了解到,負(fù)責(zé)網(wǎng)絡(luò)的人和負(fù)責(zé)大樓的人各有自己的監(jiān)控系統(tǒng),首先,我們要能夠訪問(wèn)他們的系統(tǒng),這樣,出現(xiàn)問(wèn)題之后,就能夠驗(yàn)證系統(tǒng)狀態(tài)。然后,在發(fā)生問(wèn)題時(shí),要相互告知。最后,我們把不同的監(jiān)控系統(tǒng)集成起來(lái),提供統(tǒng)一的運(yùn)行狀態(tài)圖。
隨著時(shí)間的推移,各個(gè)Web服務(wù)器的參數(shù)和配置更加地趨于一致。有些站點(diǎn)的硬件能力沒(méi)有充分利用,而其他的卻需要增加容量。我們決定把各個(gè)站點(diǎn)分布在不同的服務(wù)器上進(jìn)行負(fù)載均衡。這樣,除了性能和利用率得到提高之外,還提高了可用性,因?yàn)檎军c(diǎn)現(xiàn)在是運(yùn)行在多臺(tái)服務(wù)器上,即使一臺(tái)服務(wù)器宕掉了,也可以通過(guò)負(fù)載均衡器將用戶重定向到另外的可用服務(wù)器上,來(lái)保證用戶的正常使用,同時(shí)將數(shù)據(jù)庫(kù)服務(wù)器轉(zhuǎn)成了高可用性的集群。
網(wǎng)絡(luò)部門(mén)的朋友們做了同樣的事:為路由器、交換機(jī)、防火墻增加了冗余?,F(xiàn)在,可以放心地說(shuō),我們消除了架構(gòu)中存在的大量單點(diǎn)故障。管理服務(wù)器變得容易了,可以從服務(wù)器池中把一臺(tái)移出來(lái)進(jìn)行維護(hù),而不會(huì)影響系統(tǒng)運(yùn)行。把監(jiān)控站點(diǎn)開(kāi)放給內(nèi)部的最終用戶,讓他們驗(yàn)證自己的環(huán)境狀況,這樣他們就可以了解哪些問(wèn)題是站點(diǎn)的問(wèn)題,哪些問(wèn)題是他們自己電腦的問(wèn)題。在我們引入冗余級(jí)別之后,用戶給搞糊涂了,他們無(wú)法區(qū)分哪些是服務(wù)器的服務(wù),哪些是負(fù)載均衡器提供的全局服務(wù)。我們又在監(jiān)控顯示上提供了一個(gè)服務(wù)級(jí)別,以便區(qū)分。對(duì)于其他的冗余機(jī)制,譬如用于DNS(NS記錄)、Mail(MX記錄)、NTP時(shí)鐘等服務(wù)的冗余機(jī)制,以及像RAID5和磁盤(pán)鏡像這樣的磁盤(pán)冗余機(jī)制等,都同樣提供服務(wù)級(jí)別,以便區(qū)分。
負(fù)載均衡器是由服務(wù)器團(tuán)隊(duì)管理的,因?yàn)閺倪壿嬌现v,負(fù)載均衡更接近于應(yīng)用程序,而且要正確地管理負(fù)載均衡器,需要深入的HTTP知識(shí)。在進(jìn)行更新時(shí),先在被動(dòng)的負(fù)載均衡器上準(zhǔn)備配置,然后再將主動(dòng)負(fù)載均衡器切換為被動(dòng)負(fù)載均衡器,我們很自信,可以在工作時(shí)間做這種更新。偶爾切換的時(shí)間會(huì)很長(zhǎng),以至于監(jiān)控系統(tǒng)會(huì)認(rèn)為發(fā)生了錯(cuò)誤。這種情況很難理解,因?yàn)槲覀兣渲玫呢?fù)載均衡器應(yīng)該是立即切換的。我們開(kāi)始檢查歷史日志,看是否能夠找到發(fā)生了其他問(wèn)題的線索。最后證明,我們那兩次碰到問(wèn)題,是由于防火墻、路由器、交換機(jī)出問(wèn)題了。這就解釋通了,負(fù)載均衡器沒(méi)有問(wèn)題。那天下午,網(wǎng)絡(luò)部門(mén)也打電話給我們,問(wèn)是不是改了負(fù)載均衡器上的什么東西。“是的,”我們說(shuō),“安裝了新的配置,失效轉(zhuǎn)移工作正常,只是你們的路由器、交換機(jī)、防火墻出問(wèn)題了。”我們?cè)诶^續(xù)轉(zhuǎn)換的時(shí)候,他們最終把問(wèn)題追蹤到了負(fù)載均衡器的失效轉(zhuǎn)移上:負(fù)載均衡器在做失效轉(zhuǎn)移時(shí),防火墻也在做失效轉(zhuǎn)移,因?yàn)樗鼨z測(cè)到了路由問(wèn)題。最后,我們把兩種失效轉(zhuǎn)移機(jī)制緊密耦合在一起,從而可以讓它們一起進(jìn)行失效轉(zhuǎn)移。
【推薦閱讀】
◆網(wǎng)管軟件專(zhuān)區(qū)
◆網(wǎng)絡(luò)監(jiān)控原理與技術(shù)實(shí)現(xiàn)
◆巧用泛普BTNM智能分析網(wǎng)管軟件解決網(wǎng)絡(luò)故障
◆奇怪的排障:企業(yè)網(wǎng)絡(luò)管理要突破慣有思維
◆IT運(yùn)維管理專(zhuān)區(qū)
本文來(lái)自互聯(lián)網(wǎng),僅供參考