在數(shù)據(jù)中心里,幾乎所有的系統(tǒng)和應(yīng)用程序都會(huì)產(chǎn)生日志文件。日志是帶時(shí)間標(biāo)記的足跡、記錄行為、條件和事件,通過對(duì)日志進(jìn)行分析,往往能夠提前預(yù)知到數(shù)據(jù)中心運(yùn)行的潛在風(fēng)險(xiǎn),也能夠在發(fā)生故障之后,通過日志信息找到故障發(fā)生的原因,就像是飛機(jī)的黑匣子一樣,發(fā)生事故后追查原因的一個(gè)重要手段。然而,數(shù)據(jù)中心里的設(shè)備成千上萬(wàn),安裝的軟件和應(yīng)用程序復(fù)雜多樣,每臺(tái)設(shè)備,每個(gè)應(yīng)用都有自己的日志打印,這樣每天數(shù)據(jù)中心都會(huì)產(chǎn)生海量的日志信息,即使是最辛勤的管理員也無(wú)法在有生之年完成對(duì)逐個(gè)日志的甄別,大型數(shù)據(jù)中心運(yùn)行中不斷生成日志數(shù)據(jù)的速度已遠(yuǎn)遠(yuǎn)超過人類分析的速度,傳統(tǒng)的數(shù)據(jù)分析方法是每周或每天依照列表審查日志文件,這種方法早已無(wú)法滿足現(xiàn)在數(shù)據(jù)中心的要求,于是出現(xiàn)了很多日志分析工具、網(wǎng)絡(luò)管理軟件,利用這些分析軟件來(lái)檢查日志信息,以便代替人工查閱的方式,提升分析日志的速度,這也是目前數(shù)據(jù)中心里對(duì)日志分析的普遍做法,但實(shí)際上能夠提前通過日志,預(yù)知隱患的很少,那應(yīng)該如何利用日志信息來(lái)提升數(shù)據(jù)中心的可維護(hù)性呢,或者說(shuō)通過分析日志,減少數(shù)據(jù)中心故障發(fā)生的概率呢,本文就來(lái)詳細(xì)談一談。
首先,日志分析作用的大小,取決于日志信息的準(zhǔn)確性。如果日志信息本身就是不可信的,那分析出來(lái)的結(jié)果自然不可信,所以要對(duì)日志信息進(jìn)行甄別。數(shù)據(jù)中心里的絕大部分設(shè)備都具有日志打印,有的設(shè)備還可以按照要求將日志發(fā)向網(wǎng)絡(luò)中特定的日志主機(jī)設(shè)備商。這些設(shè)備都有很多的日志打印開關(guān),可以對(duì)日志信息進(jìn)行過濾,那么哪些模塊是特定的數(shù)據(jù)中心所關(guān)心的,就打開,否則進(jìn)行關(guān)閉,避免產(chǎn)生一些無(wú)關(guān)緊要、無(wú)用的日志。另外日志信息本身的準(zhǔn)確性也非常重要,比如設(shè)備上報(bào)了一條The board is Fault,那么是單板壞了,還是軟件重啟了,是哪個(gè)槽位的板卡壞了?一條日志的信息要將整個(gè)事件的全貌反饋出來(lái),而不是讓使用者去猜,這就要求數(shù)據(jù)中心的設(shè)備商要提供標(biāo)準(zhǔn)的日志輸出設(shè)計(jì)體系,日志簡(jiǎn)單明了,能夠說(shuō)明問題,而不是不知所云。這樣能夠在有問題或者在出問題之前有日志打印還好,就怕是故障已經(jīng)發(fā)生了,而卻沒有報(bào)出任何的日志,這讓人無(wú)從進(jìn)行分析,而在數(shù)據(jù)中心運(yùn)行正常的時(shí)候,反到噼哩叭啦地往外報(bào)無(wú)用的日志。若遇到這樣的設(shè)備或者系統(tǒng),就應(yīng)該將它們?nèi)舆M(jìn)垃圾桶,這不是給數(shù)據(jù)中心添亂嗎。所以,一定要保證日志信息的準(zhǔn)確性,打印的每一條日志,都是需要數(shù)據(jù)中心管理員去關(guān)注的,并且要采取一定的預(yù)防措施。
其次,很多時(shí)候我們不好界定一些日志有沒有用,所以經(jīng)過裁剪、判斷,還是會(huì)有很多的日志輸出出來(lái)。比如我拔插個(gè)光模塊,一定會(huì)有日志打印,端口的UP/DOWN,也一定會(huì)有日志打印,如果這些日志不打印出來(lái),一旦有的時(shí)候是非人為的端口UP/DOWN,那就要查互聯(lián)端口有沒有問題,光模塊有沒有,光纖架或者跳線架有沒有問題等等,所以很多時(shí)候一些日志并不是上報(bào)問題,但又不能不打印,這時(shí)就需要甄別。因?yàn)榇笮偷臄?shù)據(jù)中心的設(shè)備實(shí)在太多,這樣日志信息收集起來(lái)也還是有很多,要靠人工每年去檢查,不太現(xiàn)實(shí)。網(wǎng)絡(luò)上有不少這類的日志分析工具,比如SiteFlow、IIS日志查看工具、光年日志分析工具等等,這些工具可以采集多臺(tái)設(shè)備的日志信息,并且根據(jù)設(shè)定的過濾條件,對(duì)關(guān)鍵字進(jìn)行過濾,對(duì)日志進(jìn)行分類:提示、一般、告警、致命等多個(gè)等級(jí),支持告警??梢詫⑷罩緦?shí)時(shí)通告給數(shù)據(jù)中心管理員,數(shù)據(jù)中心管理員對(duì)收到的日志進(jìn)行檢查,根據(jù)日志的具體內(nèi)容,啟動(dòng)相應(yīng)的解決預(yù)案,如果不好處理,則可以立即召集相關(guān)技術(shù)人員一起討論商議對(duì)策。
再次,日志信息是準(zhǔn)確的了,也會(huì)讓管理員及時(shí)知道什么設(shè)備報(bào)出了哪些日志,需要及時(shí)處理的,但這還遠(yuǎn)遠(yuǎn)不夠。未來(lái)?yè)碛袛?shù)千臺(tái)的數(shù)據(jù)中心往往就只要幾個(gè)人來(lái)管理與維護(hù),這些日志分析工作也只是這些人平時(shí)工作其中的小部分,這些人還有很多其它的事情要做,所以很多時(shí)候?qū)θ罩镜妮敵鰶]有時(shí)間來(lái)理會(huì),更多的時(shí)候是已經(jīng)發(fā)生故障了,然后再回查故障當(dāng)時(shí)和之前有沒有什么打印日志,但故障已經(jīng)發(fā)生了,影響已經(jīng)造成了,再去看日志無(wú)非是想找到故障的原因,有時(shí)是希望通過故障原因來(lái)對(duì)數(shù)據(jù)中心進(jìn)行改進(jìn)和優(yōu)化,避免再出這樣類似的故障,這不是一個(gè)很好的做法。最好的做法時(shí),在故障發(fā)生之前或者故障剛發(fā)生,就通過日志得到故障事件,并通過自動(dòng)化軟件自動(dòng)啟動(dòng)提前設(shè)置好的恢復(fù)預(yù)案,避免故障發(fā)生或者將故障帶來(lái)的影響降低到最小,將日志和自動(dòng)化恢復(fù)的動(dòng)作結(jié)合起來(lái),通過軟件自動(dòng)化判斷當(dāng)前收到日志的嚴(yán)重性,根據(jù)故障的等級(jí)來(lái)執(zhí)行相應(yīng)的動(dòng)作,讓數(shù)據(jù)中心自動(dòng)恢復(fù)運(yùn)行。
最后,更多的設(shè)備僅僅靠日志分析,起不到什么效果,還需要通過流量分析工具,命令腳本工具來(lái)單獨(dú)收集一些數(shù)據(jù)中心運(yùn)行信息,這些信息往往可以包含比日志還要豐富的信息,將這些信息與日志結(jié)合起來(lái)一起分析,才能達(dá)到更好的分析效果。日志僅是獲取數(shù)據(jù)中心運(yùn)行情況的一個(gè)手段,但不是唯一的,需要通過多方面的信息,綜合分析,診斷數(shù)據(jù)中心的運(yùn)行狀態(tài)。
日志的分析過程就是:收集—>甄別-->自動(dòng)執(zhí)行動(dòng)作,這樣的三個(gè)步驟,其實(shí)很多的數(shù)據(jù)中心都達(dá)不到這樣的要求,尤其是最后一部分,關(guān)鍵時(shí)候還是要靠人來(lái)執(zhí)行動(dòng)作,而不是自動(dòng)化軟件,數(shù)據(jù)中心軟件的發(fā)展遠(yuǎn)沒有達(dá)到這樣高度自動(dòng)化的水平,尤其是在數(shù)據(jù)中心這樣信息技術(shù)高度發(fā)達(dá)的地方,正是因?yàn)橛羞@些不完善的地方,才促使數(shù)據(jù)中心技術(shù)在不斷地向前發(fā)展與進(jìn)步。