資料中心如何面對日誌海洋
資料中心裡有成千上萬臺裝置,每臺裝置在執行過程中都會產生這樣那樣的日誌資訊,有些是無關緊要的,而有些則是發生故障的預警,及時發現異常日誌,可減少故障發生,保證業務平穩執行。一方面資料中心要求裝置商將裝置執行的故障資訊一定要通過日誌打印出來,以便資料中心運維的人員通過日誌就可以知道裝置發生了故障,提前做準備;另一方面資料中心都要對日誌進行甄別,哪些需要關注,哪些不用關心,哪些需要立即進行處理。然而,由於資料中心裡裝置數量非常多,如果每臺裝置輸出一條日誌資訊,一萬臺裝置就是一萬條,靠人工去檢視,是根本不可能的事兒。那麼資料中心該如何高效處理這些海量日誌資訊呢。
資料中心的日誌主要來自三個方面:一是裝置層,對資料中心內的各種裝置進行監控,如:交換機、路由器、安全裝置、伺服器、UPS、精密空調等,實現物理層實時監控和資料採集;二是系統層,對資料中心主機(Linux主機和x86伺服器)、作業系統 (Linux/Winwdos)、資料庫(Oracle、Mysql等主流)、中介軟體、儲存系統、應用軟體API、HTTP埠、備份系統、容災系統、資料同步系統、虛擬化系統,雲平臺等進行實時監控、預警分析和故障定位;三是業務層,採集一定的業務資料,如使用者數、連線數、業務併發量、日誌量等等,通過多維關聯和分析,對未來的業務執行進行分析和預測。這些日誌有些是裝置執行中主動輸出的,有些則是運維的人員通過特定命令到裝置上採集到的,通過對這些日誌進行分析,從而對裝置、系統以及業務的執行情況進行評估,一旦發現異常,立即採取處理。
顯然,海量的日誌如不經過處理,直接輸出到監控平臺,那將是非常多的。首先,做標準化處理。資料中心要有各種日誌的採集系統,將所有日誌彙集起來,這些日誌來自不同裝置、不同系統、不同業務,格式和含義都不一樣,資料中心要做標準化處理,轉換成統一識別的格式,這個格式完全由資料中心定義,由技術人員進行轉義,形成標準化的日誌語言;第二,做日誌過濾。日誌經過標準化處理,整齊劃一,格式統一,但數量仍沒有減少,所以需要做過濾。過濾的原則是將級別低的、操作類的、提示類的日誌過濾掉,將級別高的、異常類的日誌留下來。具體到各種裝置的日誌,要由裝置商提供全系列的日誌資訊,並標註優先順序和表達的含義,由資料中心將這些資訊輸入到知識庫中,作為過濾判斷的條件,知識庫是一個逐漸積累的過程,不僅是日誌的過濾,還包括各種故障的處理方法、經典案例、解決方案等等,經過知識庫的過濾,將大部分的無用日誌排除掉;第三,做壓縮歸併,將過濾後的日誌同類的要歸一化,尤其是在知識庫中已經存在過的,這類日誌如何處理,在知識庫中可以找到答案,這時可以直接按照知識庫的指導來做。如果沒有遇到過的日誌,則要交給下一級繼續處理,通過壓縮歸併也可以將日誌的數量再次減少;第四,做關聯分析,很多日誌的來由都是有根源的,比如在一臺執行中的網路裝置上突然有一條OSPF鏈路震盪了,那麼可以檢查一下在同一時間,是否也有其它OSPF鄰居也震盪了,如經過日誌檢查,在另外多臺裝置上也有OSPF震盪,並且都集中連線到一臺裝置,而這臺裝置再查日誌原來有人正在做reset ospf主動運維的操作,當通過這系列的關聯分析,就可以找到原因,及時將這種人為操作的原因告訴監控中心,並不會作為一種異常的故障告警出現;第五,做定位分析。將預期內產生的日誌消除後,來到第五步,這時的日誌往往需要深入分析,如果在現有的知識庫裡找不到解決方案,並且日誌本身的告警級別還很高,這時就要輸出告警了,經過這五步處理,能夠輸出告警的日誌已經很少了。
日誌經過以上五個步驟處理,能夠精簡多少,這取決於現有的知識庫,知識庫內容越豐富,資訊越準確,精簡下來的日誌就越少。試想哪個資料中心會天天發生故障,一個月發生一次都了不得,否則早就關門大吉了,所以資料中心裡每天產生的日誌很多很多,而絕大部分的日誌都影響不大,甚至無影響。當然,這種日誌過濾也不排除將一些關鍵日誌過濾掉了,導致出了問題,卻沒有告警,這是一個逐步完善的過程。現在AI技術這麼火,也火到了資料中心運維領域,其實就是利用AI技術,對資料中心的知識庫進行學習,以便可以對新增的日誌進行準確判斷,這個過程靠人工完成效率太低了,而利用機器學習,則可以瞬間完成,這也是智慧運維研究的一個重要方向,通過AI處理資料中心的海量日誌。
資料中心如何面對日誌海洋?歸納起來就三個字:“簡、智、深”,精簡日誌數量,過濾無用或無害日誌;利用現有知識庫學習,智慧分析日誌產生的影響和後果;深度學習日誌,輸出學習結果,根據日誌做出判斷和自決,資料中心繫統自動執行解決方案:切流量或者隔離故障裝置,也可能是調整配置等等,自動進行處理,這種情況只要將處理結果反饋到監控平臺即可,甚至都可以不用給出日誌告警,作為普通事件處理。只有AI不知如何處理時,再將告警日誌交給監控平臺,由人工干預,處理完畢後再將本次的日誌處理交給AI學習,同類日誌再次出現時,系統就可以自行處理,不再需要人工干預,構建這樣一個學習日誌系統,就是智慧運維的開始。