日志是帶時間標記的足跡、記錄行為、條件和事件,數(shù)據(jù)中心里的任何設(shè)備都會有日志輸出,對這些日志進行管理是數(shù)據(jù)中心運維工作的重要組成部分。日志管理不但可以對日常操作進行控制與管理提供依據(jù),還可以在某些故障發(fā)生之前通過日志信息就能感知到,也可以在故障發(fā)生時打印一些異常記錄,還可以供故障發(fā)生后分析使用。作為數(shù)據(jù)中心的運維人員學會檢查和分析日志數(shù)據(jù),是一項必備的技能。然而日志是一把“雙刃劍”,用好它,可以大幅提升數(shù)據(jù)中心的運維水平,降低數(shù)據(jù)中心的故障發(fā)生概率,節(jié)約運維開銷;用不好它,反而會畫蛇添足,增加運維的工作量,加大開銷,所以對于數(shù)據(jù)中心日志的管理和使用,是一門大學問,如何靈活運用是擺在每個數(shù)據(jù)中心運維者面前的一道難題。本文拋磚引玉,說一說這里的道道。
數(shù)據(jù)中心里的設(shè)備成千上萬,尤其是大型數(shù)據(jù)中心,各種服務(wù)器、網(wǎng)絡(luò)設(shè)備、安全與存儲等,擁有數(shù)千臺設(shè)備的規(guī)模很正常,如果這些設(shè)備每臺一天報一條日志信息,那么就是數(shù)千條日志,這個數(shù)據(jù)量可想而知。而且最為令人頭疼的是,不同廠家甚至是同一廠家的不同型號設(shè)備的日志信息格式完全不同,無法通過通用的日志服務(wù)器去采集,有時甚至要一類設(shè)備用一種日志服務(wù)器,另一類設(shè)備用另外一種。一個數(shù)據(jù)中心為了獲取所有設(shè)備的日志信息,要搭建數(shù)個日志服務(wù)器,分別進行監(jiān)控,這樣查看和管理起來非常不便,而且不同設(shè)備的日志風格不同,有些信息含義并不十分明確,讓人丈二和尚摸不著頭腦,這都讓日志的作用大打折扣。還有很多問題,并不能通過日志提前發(fā)現(xiàn)問題。平時可能設(shè)備上報了很多日志信息,但是都是一些無關(guān)痛癢的無用信息,而真正出現(xiàn)故障了,反而沒有任何日志報出了,采集這樣的日志信息無助于數(shù)據(jù)中心管理提升,而是給數(shù)據(jù)中心添亂。還有不少的數(shù)據(jù)中心為了節(jié)省管理費用,管理網(wǎng)與數(shù)據(jù)網(wǎng)合一,管理網(wǎng)的數(shù)據(jù)也走業(yè)務(wù)轉(zhuǎn)發(fā)設(shè)備,這樣在真正出現(xiàn)故障時,日志信息經(jīng)過的網(wǎng)絡(luò)路徑也出了故障,就會導(dǎo)致日志信息的丟棄,也錯失了避免嚴重故障的機會,這些都是當前數(shù)據(jù)中心在日志監(jiān)控上面臨的問題。
怎樣將數(shù)據(jù)中心的日志監(jiān)控有效做起來,是每個數(shù)據(jù)中心最為關(guān)心的問題。首先,日志信息要統(tǒng)一格式。作為甲方,數(shù)據(jù)中心有權(quán)利要求其采購的設(shè)備輸出日志符合通用日志服務(wù)器采集的格式,無法滿足的設(shè)備堅決不再進行后期采購,如此一來就可以在整個數(shù)據(jù)中心部署一套日志監(jiān)控設(shè)備即可,這樣可大幅節(jié)省監(jiān)控設(shè)備的運維支出;其次,日志采集與業(yè)務(wù)轉(zhuǎn)發(fā)分離,日志數(shù)據(jù)走單獨的管理網(wǎng),管理網(wǎng)一般是通過專有設(shè)備將所有設(shè)備的管理口,服務(wù)器的單獨網(wǎng)卡連接起來,這樣業(yè)務(wù)網(wǎng)絡(luò)有中斷,并不影響到日志數(shù)據(jù)的收集,這樣往往可以給分析問題提供及時、有效的信息,縮短故障定位和恢復(fù)的時間;第三,日志信息要簡潔和準確,一個大型數(shù)據(jù)中心數(shù)千臺設(shè)備,不能什么日志都向日志主機發(fā)送,只有可能影響到轉(zhuǎn)發(fā)業(yè)務(wù)的日志才會采集,如果設(shè)備無法控制,就在日志服務(wù)器上進行控制,對不同日志進行等級分類,平時只關(guān)注級別高的告警,級別低的忽略不計。此時,設(shè)備提供的日志準確性尤為重要,哪些日志可能會影響業(yè)務(wù),哪些日志是提示性的,哪些日志是操作類的記錄,這樣分得清楚,這樣在日志服務(wù)器上可以調(diào)取自己關(guān)心的那類日志,不用全部查看,這將大大節(jié)省日常運維的檢查時間;第四,很多數(shù)據(jù)中心已經(jīng)開始做自動化的運維管理,對日志服務(wù)器增加自動化檢查的腳本,通過腳本對日志進行檢查,這樣可大大節(jié)省人工成本。這種自動化運維管理是通過TCL腳本,對日志進行檢查,當發(fā)現(xiàn)異常關(guān)鍵字時,給出自動告警,有些腳本還可以自動執(zhí)行一些恢復(fù)的設(shè)備命令,這樣達到發(fā)現(xiàn)故障自行恢復(fù)的目的。比如:可以在自動化腳本中增加“Fan is fault”的判斷,當發(fā)現(xiàn)日志里出現(xiàn)這樣的字樣時就主動給出提示,或者將告警直接發(fā)向運維人員的值班手機上,這樣運維人員立即就能知道是哪臺設(shè)備的風扇出了問題,日志自動化管理是數(shù)據(jù)中心提升運維水平的重要手段;第五,與設(shè)備商做好交流溝通,要求設(shè)備商提供完整的日志信息,包括告警級別的分類,這些日志的準確性將直接決定未來運維的效率,如果設(shè)備商的設(shè)備在故障時,并沒有從日志中反映出來,就說明這些設(shè)備做得還不夠好,要改進。所有的故障都應(yīng)該通過日志反映出來,這樣才能高效運維。設(shè)備可維護性也可作為數(shù)據(jù)中心未來采購的重要參考標準。操作靈活性差,信息記錄缺失都是可維護性差的表現(xiàn),對于這類設(shè)備應(yīng)檢查采購或不采購。數(shù)據(jù)中心出了問題并不可怕,可怕的是出了問題后還不知道怎么回事,沒有歷史記錄可查。
日志監(jiān)控是未來數(shù)據(jù)中心管理的重要組成部分,通過日志監(jiān)控可以避免或者減少業(yè)務(wù)故障的時間,對于數(shù)據(jù)中心運維特別有意義。當然,日志監(jiān)控并不能解決數(shù)據(jù)中心所有問題,數(shù)據(jù)中心業(yè)務(wù)特別復(fù)雜,問題表現(xiàn)各異,就算日志監(jiān)控做得再完整,很多問題也不能通過日志完全反映出來。比如通過FTP下載數(shù)據(jù)慢,這樣業(yè)務(wù)層問題,通過日志很難反映出來,就需要借助抓包、統(tǒng)計報文等其它手段再深入分析??傊?,日志監(jiān)控還需要不斷完善,不僅是數(shù)據(jù)中心,也需要數(shù)據(jù)中心設(shè)備提供商一起努力,將日志監(jiān)控做好,從而提升數(shù)據(jù)中心的運維水平。