自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【大咖來了 第3期】海量日志分析與智能運維

原創(chuàng)
人工智能
日志易 CEO 陳軍分享的《海量日志分析與智能運維》,回放鏈接:http://aix.51cto.com/activity/10011.html?dk=wz

一、AIOps 與智能日志中心

1.1AIOps 五等級

要說智能日志中心,首先要了解什么是智能運維。目前業(yè)界對智能運維的運用,主要分為如下五個等級。


一級是最容易的,只要你有個想法試試就行,到網(wǎng)管監(jiān)控系統(tǒng)里,拿一個監(jiān)控指標(biāo)的曲線下來,就可以嘗試異常檢測。

 

一級還沒有成熟的單點應(yīng)用,當(dāng)有了一個成熟的單點應(yīng)用,就算是達到二級。二級必須要有一定的基礎(chǔ)設(shè)施建設(shè)作為前提。當(dāng)單場景模塊能夠串聯(lián)起來,形成流程化 AI 運維,也就達到了三級的層次。

 

目前業(yè)界基本上處于從一二級,往二三級努力的階段,想實現(xiàn)四、五級還比較遠。

 

大家都知道,現(xiàn)在 AI 應(yīng)用強、技術(shù)成熟,能被廣泛應(yīng)用的基本上僅有兩個模塊——語音識別和人臉識別。語音及人臉識別能夠快速得以發(fā)展,主要因為國內(nèi)市場的需求,及國內(nèi)大人口基數(shù)下廣泛的數(shù)據(jù)資源。

 

運維領(lǐng)域數(shù)據(jù)較少,且信息比較碎片化,這使得 AIOps 發(fā)展緩慢。日志易五年前開始做日志分析的時候,主要也是得益于海量的日志數(shù)據(jù),AI算法的應(yīng)用下,得以實現(xiàn)智能日志分析。目前日志易智能日志中心處于 AIOps 五等級的二級到三級之間。

 

1.2智能日志中心介紹

 

為了幫助大家實現(xiàn)更高級的 AIOps 能力,日志易打造了一個智能日志中心。如下圖,為智能日志中心的全景架構(gòu)圖。


我們都知道, AI 重要的是數(shù)據(jù)。所以,首先我們要具備盡量多類型的數(shù)據(jù)采集、處理及分析能力。

 

日志易支持 Linux、Windows、AIX、HPUX 等各種平臺的數(shù)據(jù)采集,也能采集 ODBC、Syslog、APM 的數(shù)據(jù),甚至手機 App 埋點數(shù)據(jù),然后配合一些 CMDB 數(shù)據(jù),流程工單數(shù)據(jù),非常方便地實現(xiàn)業(yè)務(wù)運維層面的關(guān)聯(lián)分析。

 

采集之后,我們有數(shù)十種 ETL 方法來對日志進行規(guī)范化處理。日志本身是非結(jié)構(gòu)化的,而日志分析需要格式化的數(shù)據(jù),ETL 做好了,后續(xù)的分析才容易展開。

 

這個環(huán)節(jié),會涉及到一些數(shù)據(jù)脫敏及業(yè)務(wù)日志串聯(lián),對于一些時間戳設(shè)計不合理的日志,日志易會自動對其進行補全,以便后續(xù)分析工作的展開。

 

對數(shù)據(jù)進行搜索時,業(yè)界主流開源解決方案是 ES。然而,由于 ES 開源引擎是一個通用的搜索引擎,難以滿足日志處理的一些特殊需求,用Java 開發(fā),內(nèi)存消耗及性能上存在很大優(yōu)化空間,在面臨海量日志數(shù)據(jù)時,ES 往往顯得力不從心。

 

基于以上原因,日志易自己開發(fā)了比通用引擎快 5 倍以上的 Beaver 搜索引擎,保證了海量數(shù)據(jù)的實時存取。我們還有上百個 SPL 指令進行統(tǒng)計分析,有多種不同場景的算法。搜索引擎可以說是 AIOps 的大腦。

 

我們有日志易智能日志中心,也有基于日志開發(fā)的智能運維應(yīng)用 Lynxee、大屏 Galaxee、數(shù)據(jù)工廠。安全審計、業(yè)務(wù)關(guān)聯(lián)分析等解決方案,也是基于智能日志中心實現(xiàn)的。

 

智能日志中心可以與大屏展示、告警推送、按需調(diào)用腳本執(zhí)行、公開的數(shù)據(jù) API 和第三方平臺對接,這一部分可以說是 AIOps 的手。

 

以上這些合在一起,就是整個智能日志中心,我們也可以把它看作 AIOps 的中控(或者中臺)。

 

日志易有上百種不同類型數(shù)據(jù)的采集分析方案,可以直接導(dǎo)入安裝,如思科、F5、天融信等各種網(wǎng)絡(luò)設(shè)備日志,Oracle、MySQL 等數(shù)據(jù)庫日志,Nginx、Apache 等中間件日志等。這些內(nèi)置數(shù)據(jù)采集分析方案,可以節(jié)省數(shù)據(jù)采集處理的時間。

 

我們在實踐中發(fā)現(xiàn),做一個運維數(shù)據(jù)中心,70% 以上的時間是在做數(shù)據(jù)采集和處理。真正處理好了以后的分析過程還是很快的。這和 AI 界說人工智能 80% 的工作是數(shù)據(jù)清洗,是比較吻合的。

 

二、圍繞日志的 AIOps 場景與算法原理介紹

 

2.1AIOps 場景

 

說到 AIOps 的場景,我們可以從成本、質(zhì)量、效率三個方面做出規(guī)劃,如下圖:


以質(zhì)量保障而言,以往的異常檢測,需要運維工程師基于自己的經(jīng)驗做出判斷和分析,我們要做的,是借助AI來實現(xiàn)這一目的。

 

故障的發(fā)生都是有先兆的,可能表現(xiàn)為延時逐漸增大,響應(yīng)逐漸變慢等。我們可以基于這些先兆及歷史數(shù)據(jù)做出模型,對即將發(fā)生的異常做出預(yù)判。

 

成本管理和效率提升要面臨的情況更加復(fù)雜。成本管理面臨成本優(yōu)化、資源優(yōu)化、容量規(guī)劃、性能優(yōu)化等復(fù)雜場景。

 

效率提升涉及復(fù)雜度較高的智能變更、智能問答、智能決策、容量預(yù)測等,以雙十一容量預(yù)測為例,要基于歷史數(shù)據(jù)預(yù)估流量,同時結(jié)合業(yè)務(wù)(如促銷活動帶來的增量)等因素綜合分析??v然如此,預(yù)估也往往會和現(xiàn)實存在較大出入。

 

就目前的階段,質(zhì)量保障還是最關(guān)鍵、性價比很高的,是可以首先實現(xiàn)智能化的部分。我們的智能日志中心,目前主要關(guān)注的也是這個方向。

 

具體來說,在質(zhì)量保障上,運維人員希望做到的,就是盡早告警、盡快定位、盡快修復(fù)。表現(xiàn)在“日志+算法”的 AIOps 實踐上,具體流程為以下三步:

 

1、快速發(fā)現(xiàn)故障:即基于多種算法進行異常預(yù)測;

2、問題歸因定位:即通過日志模式洞察罕見報錯信息;

3、輔助修復(fù)決策:即通過多方位展現(xiàn)系統(tǒng)狀態(tài)加速決策。

 

2.2AIOps 之快速發(fā)現(xiàn)故障

 

快速發(fā)現(xiàn)故障即盡快告警。告警的本質(zhì),是告訴運維人員兩件事情:一,有問題了;二,問題有多嚴(yán)重。

 

我們從日志直接產(chǎn)生告警,或者經(jīng)過統(tǒng)計分析變成時序指標(biāo),再監(jiān)控告警。通過整合告警的優(yōu)先級和重要程度,擬合出來一個服務(wù)的健康度,讓用戶對系統(tǒng)狀態(tài)一目了然。


一般而言,監(jiān)控系統(tǒng)會有兩種告警:一種是匹配關(guān)鍵字,一種是采樣指標(biāo)的閾值對比。匹配關(guān)鍵字的嚴(yán)重性,就是匹配 warning、critical 等;閾值的嚴(yán)重性,就是定義多個閾值區(qū)間,比如 CPU 大于 80% 發(fā)中危告警、大于 120% 發(fā)高危告警。在智能日志中心,這兩種告警都支持。

 

從日志、時序指標(biāo)的監(jiān)控告警,到服務(wù)健康度、故障定位,日志易有一整套監(jiān)控流程,這是智能日志中心的重要組成部分,位于引擎的上層。告警這部分還是以質(zhì)量保障和 AI 算法為主。

 

2.3AIOps 之問題歸因定位

 

2.3.1指標(biāo)異常檢測

 

《SRE》是這幾年很火的書了,里面有個概念值得推薦,就是所謂“黃金指標(biāo)”。

 

不管是主機設(shè)備層面,還是應(yīng)用服務(wù)層面,或者集群、端到端等等,都可以從延遲、流量、錯誤和飽和度四個最關(guān)鍵的角度,來衡量它的健康狀態(tài)。


在日志易中,我們可以通過 SPL 語句,快速從不同的日志數(shù)據(jù),轉(zhuǎn)換成為對應(yīng)的指標(biāo)數(shù)據(jù)。只需要更換紅字這段過濾條件,就可以做到全面的指標(biāo)數(shù)據(jù)覆蓋。

 

既然有了指標(biāo)數(shù)據(jù),下一步要考慮的就是如何智能地檢測指標(biāo),以便根據(jù)歷史情況,智能地發(fā)現(xiàn)問題了。

 

因為指標(biāo)的千差萬別,很難有一種單一的普適算法。所以日志易針對不同場景需求,啟用不同的算法。下面稍微介紹部分算法的原理。

 

CVAE 算法

 

我們都知道 VAE是深度學(xué)習(xí)里的一種,一般你在網(wǎng)上搜這個算法解釋,都是講怎么做圖像識別的。


指標(biāo)就是一個很簡單的曲線,所以我們把曲線按照滑動窗口的形式,切割成一段一段的小曲線,合在一起,就成了一個特征矩陣了,然后進入多層的編碼解碼,反復(fù)迭代,得到更好的模型。

 

為了提高效果,在訓(xùn)練數(shù)據(jù)上,還可以主動添加一些噪聲誤差。

 

然后實際檢測的時候,我們就把測試數(shù)據(jù)經(jīng)過編解碼得出來的一小段模擬曲線的分布,和實際數(shù)據(jù)作對比,是不是發(fā)生了嚴(yán)重偏離。因為模擬曲線是正態(tài)分布的,所以這個偏離就是 3Sigma。

 

這個算法,很適合做強周期性的指標(biāo)檢測。一般來說,由大量人群行為產(chǎn)生的數(shù)據(jù),像業(yè)務(wù)訪問,就很適合。

 

我們在這塊還有一個創(chuàng)新:加強了時間特征上的處理。我們知道,人的行為肯定是有大小周期的,今天和昨天、本周一和上周一、每個月一號、每年春節(jié)、每年 618、雙十一等,都是在算法上會重點加強學(xué)習(xí)的行為。

 

iForest 算法

 

第二個是 iForest 算法,這是一個專門用來做異常檢測的隨機森林算法變種。

 

它適合一些和時間沒有強相關(guān)性的指標(biāo),比如主機的 CPU、內(nèi)存等,數(shù)據(jù)本身離散度較大,沒有什么規(guī)律,可能主要關(guān)心的就是它不要出現(xiàn)太明顯的偏離。

 

這種指標(biāo)比較多,要求算法檢測速度夠快。

 

KDE 算法

 

第三個是 KDE 算法,這個算法針對的是一類特殊的場景。

 

我們知道,有些服務(wù)并不是 7x24 小時運行的。比如股票市場,每天 9 點開盤,15 點收盤。在閉市的時候,證券公司相關(guān)系統(tǒng)的業(yè)務(wù)指標(biāo)完全是零。閉市和開市兩個階段,涇渭分明,普通算法在這兩個躍遷的時刻幾乎肯定是要誤報的。

 

同理,還有很多理財之類的金融場景,在周末兩天無業(yè)務(wù)輸出也是一個道理。

 

所以我們按照天的維度,對每天的每個時間點都選取它周圍的若干個點,形成一個集合,進行核密度分析,然后一天的所有點合起來,得到最終的 KDE 模型。

 

這個模型有點類似于在 3D 地圖上,無數(shù)個正態(tài)分布堆在一起形成的山巒。那么檢測的時候,對應(yīng)時間過來的值,如果出現(xiàn)在平原地帶,就是明顯的異常了。

 

GRBT 算法

 

 GRBT 算法,我們會同時提取時序數(shù)據(jù)的統(tǒng)計學(xué)特征,以及它的時間戳特征。它的用途場景與 KDE 和 iForest 相比,有更廣泛的普適性,突變的和業(yè)務(wù)的都能用。

 

可以看到這個算法原理,和前面 iForest 比較像,因為都是決策樹森林。不過 iForest 是每次部分抽樣迭代,而 Boosting 是每次根據(jù)上一次迭代的結(jié)果來重新選取分界點。

 

但是這是一個監(jiān)督學(xué)習(xí),想用好,需要訓(xùn)練樣本里有一定的異常點標(biāo)注。

 

有這么多不同的算法針對不同的場景,運維人員根據(jù)實際的區(qū)別,選用不同的算法,就可以達到比較好的算法覆蓋了。

 

日志易后續(xù)也會繼續(xù)研究指標(biāo)數(shù)據(jù)的類型自動判斷,盡量減少運維配置選取算法的工作量。

 

2.3.2日志異常檢測

 

除了指標(biāo)的異常,還有就是日志的異常。前面提到,最常見的日志告警就是關(guān)鍵字匹配。不過,大多數(shù)系統(tǒng)的研發(fā),不會把日志寫的那么規(guī)范。

 

2016 年,中科院《軟件學(xué)報》發(fā)過一篇國防科大的《大規(guī)模軟件系統(tǒng)日志研究綜述》,里面引用了不少國內(nèi)外的調(diào)查分析。其中有幾條數(shù)據(jù)蠻有趣的:

 

日志代碼的更新頻率比其他代碼要快約1倍;

約四分之一的日志修改是把新的程序變量寫入日志;

約一半的日志修改是對日志消息靜態(tài)文本的修改。

 

這些研究一般都是基于大型分布式項目,比如 Hadoop、OpenStack 等。企業(yè)內(nèi)部的系統(tǒng)開發(fā),情況應(yīng)該會比這些著名的項目要嚴(yán)重的多。所以,大家輸出日志的時候,很難做到特別規(guī)范,日志格式經(jīng)常在變動……

 

所以,依賴關(guān)鍵字或者固定的某種正則表達式提取,在長期運行的場景下,是不足以做到日志異常檢測的,這時就需要 AI 算法來幫忙。

 

層次聚類得到日志模式

 

日志易的思路,是采用層次聚類。


先對日志進行最基礎(chǔ)的分詞和類型判斷,然后聚類合并。聚類可以用最長子串,也可以用文本頻率等等。聚類里,不同的部分就用通配符替換掉。類似這張示意圖,把 8 條日志,先合并成 4 個日志格式,合并成 2 個,再合并成 1 個。

 

在研究領(lǐng)域,我們一般把這種日志格式的樹狀結(jié)構(gòu),叫模式樹。

 

當(dāng)然我們實踐的時候,不用真的算到最頂端,一般來說,模式數(shù)量收斂速度差不多了,或者模式里的通配符數(shù)量差不多了,就可以停下來了。

 

日志模式的用法

 

得到日志模式,具體怎么用呢?一般來說,有兩種用法,故障定位和異常檢測。

 

故障定位

 

一種是故障定位的時候。比如我們查錯誤日志,單純用關(guān)鍵詞,可能出來幾百上千條。你要一個一個看過去,翻好幾頁,耗時就比較長了。如果內(nèi)容字很多,還可能看漏了。


模式 樹的信息,可以直接查看匹配關(guān)鍵字的日志的模式情況,可能就只有那么三五條信息,一眼就可以看完,很快就可以知道問題在哪,就可以進行下一步了。

 

異常檢測

 

另一個用途,就是把得到的,加載到日志采集的實時處理流程里,進行異常檢測,提前發(fā)現(xiàn)問題,這時候,我們除了模式,還可以檢測參數(shù),檢測占比。


上圖是一個最簡單的示例,3 條日志,得到的模式是*are<NUM>,然后我們同時可以檢測符合這個模式的日志,前邊的只能是 we 或 you,第三位只能落在平均值為 93.3、標(biāo)準(zhǔn)差為 9.4 的正態(tài)分布區(qū)間內(nèi)。

 

然后日志采集進來,先檢測一下這個模式是不是合法的。如果合法,再檢測一下各個參數(shù)位置的取值是不是合法的。如果依然合法,再檢測一下這段時間這個模式的日志數(shù)量,和之前相比是不是正常的。

 

這么三層檢測下來,相當(dāng)于把模式異常、數(shù)值異常、時序指標(biāo)異常融合到了一起。


這張截圖就是日志異常檢測的一個歷史列表??梢钥吹剑呐略?INFO 級別,也是可能出現(xiàn)你從來沒見過的古怪日志的,這就需要密切關(guān)注了。

 

當(dāng)然,因為日志量特別大,所以他的訓(xùn)練樣本很容易錯過一些正常情況,所以上線初期,我們需要一些迭代以及標(biāo)注的優(yōu)化過程。把初始樣本不斷豐富起來。

 

前面說了很多 AI 算法:如何來發(fā)現(xiàn)異常,定位異常。但是很可惜,定位異常這件事情,目前很難做到能找出非常理想的根因的程度。一般的做法,是依賴于云平臺、容器平臺的指標(biāo)采集,做到定位出某臺機器有問題,具體還是要登陸機器分析。

 

我們從日志的角度,可以定位到某臺機器的一段日志有問題,但是也不算找到 100% 的根因了,還需要后續(xù)查詢分析。

 

所以,做一個智能日志中心,我們也還需要提供更全面的統(tǒng)計分析和快速查詢的能力,來完成對全局的、細節(jié)的運行狀態(tài)的觀測,以及對變化的即時捕捉。

 

三、日志分析實踐與案例

 

3.1業(yè)務(wù)交易的實時統(tǒng)計分析

 

對應(yīng)前面說的 VAE 算法,我們說他最適合的就是監(jiān)控業(yè)務(wù)交易量這類指標(biāo)。

 

我們可以通過儀表盤的可視化效果,對業(yè)務(wù)交易量的各個不同維度,進行非常細致的統(tǒng)計分析。這樣有什么變動的時候,一眼就能看到。


當(dāng)然,由于交易分析的常見維度比較少和明確,后續(xù)也可以通過決策樹算法,來自動定位哪些維度的異常更明顯地造成了變化,比如某個省某個運營商某個手機型號打開慢之類。

 

從實踐來說,這種基于性能優(yōu)化目的的根因分析,即使分析出來,后續(xù)的優(yōu)化成本也比較高,很可能從性價比考慮,會放棄掉。

 

交易量指標(biāo)還是像這樣用來做實時統(tǒng)計和監(jiān)控比較多。

 

3.2業(yè)務(wù)監(jiān)控-多層業(yè)務(wù)指標(biāo)鉆取

 

如果是業(yè)務(wù)結(jié)構(gòu)比較復(fù)雜的場景,可能單看最終用戶層面的交易維度不足以定位故障。我們還需要從內(nèi)部的業(yè)務(wù)流轉(zhuǎn)關(guān)系來調(diào)查問題。這時候,就可以用拓撲圖來觀測系統(tǒng)運行狀態(tài)。


在運行狀態(tài)出異常的時候,通過鉆取跳轉(zhuǎn),把每層的情況和調(diào)查路徑串聯(lián)起來。哪怕很基礎(chǔ)的運維人員,也可以熟練地按照高級工程師定義好的路徑排查問題。

 

3.3業(yè)務(wù)監(jiān)控-調(diào)用鏈展示分析

 

業(yè)務(wù)分析的另一個層面,是針對用戶的分析,類似現(xiàn)在很流行的 Tracing 調(diào)用鏈系統(tǒng)。


對于智能日志中心來說,Tracing 數(shù)據(jù)也是能很好支持的。在這個基礎(chǔ)上,可以做到很好的展示。

 

日志易提供了標(biāo)準(zhǔn)的調(diào)用鏈表格,還提供了循序圖分析。這是業(yè)界比較少見的方式,但對研發(fā)人員很友好,因為系統(tǒng)設(shè)計的時候,循序圖是研發(fā)人員很熟悉的方式。

 

3.4用戶端監(jiān)控-DNS/CDN 日志分析

 

除了系統(tǒng)內(nèi)部,還可以從 DNS 和 CDN 廠商獲取日志,甚至包括收集自己的手機 App 日志,來了解、監(jiān)控端到端的情況。


以上截圖,展示了 10TB 級別日志量的實時返回碼趨勢分析、各站點緩存率分析、各站點響應(yīng)時長分析、流量峰值分析,以及用戶行為軌跡分析、高頻請求客戶分析、熱門站點分析、域名與運營商關(guān)系分析等。

 

此外,基于這些日志可以實現(xiàn)性能監(jiān)控、故障排查等,也可以跟第三方廠商的計費做二次核算。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

責(zé)任編輯:杜寧 來源: 51CTO
相關(guān)推薦

2017-09-28 16:00:43

CIO時代

2019-11-21 20:45:31

大咖來了面向交互人工智能

2019-10-22 15:43:18

智能化數(shù)據(jù)人工智能

2019-12-12 14:30:15

智能一點智能導(dǎo)購對話機器人

2015-12-23 11:13:05

2019-11-07 16:32:26

數(shù)據(jù)智能化

2019-11-07 15:31:48

中臺大數(shù)據(jù)

2020-01-13 21:18:30

大咖來了大數(shù)據(jù)云分析平臺

2019-12-27 17:25:13

大咖來了數(shù)據(jù)安全

2019-12-31 14:30:00

數(shù)字聯(lián)盟移動設(shè)備可信ID

2020-02-14 16:20:19

大咖來了IT管理者

2019-08-21 14:38:52

新零售時代智慧中臺

2014-04-18 15:22:25

Linux運維趨勢

2018-06-30 17:08:40

運維新挑戰(zhàn)Tech Neo

2010-12-10 16:07:50

Linux運維趨勢電子雜志

2017-10-23 10:16:17

技術(shù)沙龍Tech NeoCDN

2012-01-17 09:47:46

Linux運維趨勢CDN緩存

2011-10-14 18:38:51

Linux運維趨勢優(yōu)化電子雜志

2020-04-28 18:12:31

技術(shù)資訊

2018-05-25 16:32:04

運維,AI,人工智能,
點贊
收藏

51CTO技術(shù)棧公眾號