1. 程式人生 > >AIOps的第四方物流智慧運維輔助研究

AIOps的第四方物流智慧運維輔助研究

3.1 4PL智慧運維平臺波動研究

      在第四方物流智慧運維平臺中,由於波動劇烈的項相比於趨勢穩定的項來說,不太容易預測,能夠一定程度減少報警也可以達到比較好的效果。和磁碟這種趨勢穩定的監控項不同的是,波動劇烈的監控項由於歷史資料變化情況比較複雜。和趨勢穩定的監控項的預測準確率和報警減少率一樣,預測了波動劇烈的監控項的未來一個小時的趨勢,同樣的機器數量,預測準確率大概達到80%左右,報警減少率能夠維持在50%。

    第四方物流智慧運維平臺數據波動的場景往往不同,應要區別對待。

(1)場景一:資料無規律波動,但正常基本在一個較小的波動範圍內,典型的場景就是拒絕數監控,通常我們會按照拒絕數的常態波動範圍設定一個或多個恆定閾值,超過閾值即報警。

      場景一的問題可以使用恆定閾值解決,超過設定閾值就報警。比如拒絕數監控,我們可以設定在一個單位時間內超過100個拒絕就報警。但是,實際使用中會出現單點毛刺的問題,也就是一個單點超過閾值的報警。當資料來回抖動時,就會產生大量無效報警。常見方法就是通過filter來解決,比如設定為連續5個時刻都超過閾值才報警,但這種方法太過僵硬,中間只要有一個點回到閾值範圍內就不報。

     我們採用的是更加柔性的累積法:一段時間視窗內資料的均值超過閾值觸發才報警。這樣不但能夠濾除毛刺,還考慮了原始資料的累計效應。

   單點恆定閾值: 單點抖動>filter

累計恆定閾值,考慮累積量

(2)場景二:資料的長期波動幅度較大,但正常情況下短期的波動幅度較小,體現在影象上是一根比較光滑的曲線,不應該有突然性的上漲或者下跌。典型的場景包括第四方物流資訊平臺的訂單、流水。這類場景監控的主要思想就是環比附近的資料,檢查是否存在突然的大幅上漲或下跌。

    場景二要解決的是突升突降的問題,我們求取資料最近兩個視窗的均值變化比例(見上圖公式),將原始資料轉換到了變化比例空間(r空間),在r空間上設定閾值就可以檢測出資料的突升或突降。突變的含義是發生了均值漂移。

空間轉換

(3)場景三:資料有規律地週期性波動,比如廣告收入或搜尋流量等。檢測這類資料的方法是與歷史資料作同比,從而發現異常。

      場景三中的資料有顯著的週期性,計算曆史上相同時間視窗內資料的均值和標準差,然後計算當前點的z-score值,即當前點的值減去均值之後再除以標準差。逐點計算z值可以把原始資料轉換到另外一個空間(z空間),在z空間設定閾值就可以發現這類異常了。比如左下的小圖裡藍色曲線是當前的資料,紅色和綠色的曲線是歷史同時刻資料。如果要檢測圖中紅色圓圈的部分是否異常,我們以歷史資料(紅色方塊內的資料)為基準計算均值和標準差。右下的小圖展示了藍色曲線在z空間的形態,如果取值位於紅色閾值線的下方,即可報警。

    第四方物流資訊平臺採用傳統的ARIMA或者指數平滑的方法很難達到比較好的效果,因為他們很難捕捉到以前從未出現過的情況。相反,神經網路模型由於輸入的是非線性方程,可以處理更復雜的時間序列。GARCH模型迴歸模型。除去和普通迴歸模型相同的之處,GARCH對誤差的方差進行了進一步的建模。特別適用於波動性的分析和預測。

    我們根據自相關係數來獲得該段時間內傳送波動的監控項。一起發生波動的項可能非常多,通過求曲線斜率的方法來獲得各個波動項的波動劇烈程度,並按照波動劇烈程度排序。利用均值波動法獲得波動持續的時間。在綜合考慮波動劇烈程度和持續時間後,我們可以給每個波動項賦予一定的權值,並由此得出正關聯和負關聯的項。

    現實場景中,單純依靠當前的資料來得到相關聯的項可能不太準確,這時候我們就需要一個自學習的關聯分析系統,通過以前的案例和人工經驗的加入,該模型得到不斷地修正和補充,因而會獲得比較好的效果。

3.2.1 4PL異常檢測研究

     異常檢測(Anomaly_Detection)在統計學領域通常被稱為離群點檢測。異常檢測是保障網路安全的重要環節,傳統方法依賴高質量的純淨資料集完成正常行為輪廓的建立,然而在實際應用中,純淨資料集難以獲取,從原始資料集中挑選和標記資料又費時費力,因此研宄利用較小標記代價提高異常檢測模型的效能具有重要意義。

     第四方物流資訊平臺運維繫統中常見的兩大類監控資料來源是:指標和文字,前者通常是時序資料,即是包含指標採集時間和對應指標的值,後者通常是板結構化文字格式,如程式日誌,Tracing等。隨著系統規模的變大,複雜度的提高,監控覆蓋的完善,監控資料量越來越大,運維人員無法從海量資料中發現異常,智慧化的異常檢測就是通過AI演算法,自動,實時,準確地從監控資料中發現異常,為後續的診斷,自愈提供基礎。自愈提供基礎。

     異常檢測的常見任務包括對資料來源的異常檢測,保證資料質量,以及對指標和文字的異常檢測。

     資料來源的異常檢測:資料來源會因為一些不可避免的原因存在一些異常資料,這些異常資料佔比雖然很低,但是往往會引起整個指標統計值的變動,使得統計結果偏離使用者真實體驗,需要第四方物流智慧運維平臺自動,實時的動態設定閾值,去除資料來源中的異常資料干擾,並能區分系統真正發現異常時候的故障資料和資料來源本身的異常資料。

     指標的異常檢測:包括單指標異常檢測及多指標異常檢測,其中,單指標異常檢測;時間序列的異常檢測時發現問題的核心關節,傳統的靜態閾值檢測為主的方式,閾值太高,漏洞告警多,質量隱患難以發現,閾值太低,告警太多引發告警風暴,干擾業務運維人員的判斷。

     第四方物流資訊智慧運維平臺通過機器學習演算法結合人工標註的結果,實現自動學習閾值,自動調參,提高告警的精度和召回率,大幅度降低人工配置成本,其中,多指標異常檢測:有些孤立指標來看可能並沒有異常,但是綜合多個指標來看,可能就是異常的,有些單指標表現就是異常的,但是綜合多個指標來看可能又是正常的,第四方物流資訊平臺能夠綜合多個指標評判系統指標異常,提高告警的準確性。

      文字異常檢驗:文字日誌是在特點條件下觸發生成的,並遵循一定的模板即半結構文字。傳統的日誌檢測的方式有兩種:1根據日誌級別(如Info,Warning,Critical)進行報警,但是由於其設定不準確,或不滿足實際需要,導致準確性差;2通過設定規則,匹配日誌中特定字串進行報警,但該方法依賴人工經驗,且只能已知和確定模式的異常。第四方物流資訊平臺通過自然語言處理,聚類,頻繁模式挖掘等手段。自動識別日誌出現的反常模式:結合人工反饋和標註,不斷進行優化,完善。

    在實際的運維場景中,構建一個異常檢測系統往往需要兩個角色共同參與:領域專家和演算法開發人員,可以通過觀察KPI曲線,判斷KPI曲線是否出現異常;演算法開發人員負責構建異常檢測系統,他們熟悉異常檢測器(演算法),但是實際中有各種不同型別的KPI曲線需要維護,所以需要為不同型別的KPI曲線選擇合適的異常檢測器以及合適的演算法引數。

    有許多的異常檢測演算法,主要有以下幾種異常檢測方法:

(1)基於模型的技術:許多異常檢測技術首先建立一個數據模型,異常是那些同模型不能完美擬合的物件。例如,資料分佈的模型可以通過估計概率分佈的引數來建立。如果一個物件不服從該分佈,則認為他是一個異常。

(2)基於鄰近度的技術:通常可以在物件之間定義鄰近性度量,異常物件是那些遠離大部分其他物件的物件。當資料能夠以二維或者三維散佈圖呈現時,可以從視覺上檢測出基於距離的離群點。

(3)基於密度的技術:物件的密度估計可以相對直接計算,特別是當物件之間存在鄰近性度量。低密度區域中的物件相對遠離近鄰,可能被看做為異常。

     異常檢測需要監控的業務繁多,及時發現這些業務請求數、拒絕數、響應時間、流水和訂單等資料的異常波動,是業務穩定性的重要保證。這些資料不但數量眾多,而且不同業務的曲線也有截然不同的特徵。從上圖的三幅曲線圖可以看出:

     第一幅曲線圖中有藍、綠兩根曲線,分別代表當前時刻資料和上週同一時刻的資料。藍色曲線幾乎完全覆蓋了綠色曲線,說明資料有規整的週期特性。

    第二幅曲線圖中,紫色曲線是當前時刻資料,藍色曲線是上一週的資料。可以看出:資料有一定的週期性,但又不如第一幅圖那麼規整。

    第三幅曲線圖中的資料大致平穩,在某些時段出現了異常上漲。

所以,我們的異常檢測系統面臨兩個挑戰:一是資料規模大---總共有百萬量級的指標;二是曲線的特徵差異明顯,監控難度大。

演算法選擇以後,我們需要給每種演算法自動配置引數。首先,介紹恆定閾值的自動引數配置。如左下小圖中的一段資料,直觀來說紅色區域的數值因為很罕見所以一般會被認為是有異常。通過估算這些罕見資料出現的概率,即可確定曲線的閾值。把資料看作是一組獨立同分布的隨機變數的值,我們可以使用ECDF(經驗累積概率分佈曲線)來估計隨機變數的概率分佈。我們通過ECDF把配置閾值轉換成了配置經驗故障概率。儘管不同曲線的閾值不一樣,但曲線的經驗故障概率常常是一致的。

    實際使用中,因為歷史資料樣本有限,ECDF與真實CDF有一定差距,直接使用容易有較多誤報,我們使用了補償係數解決這個問題。

3.3 4PL趨勢預測研究

     第四方物流資訊平臺往往有很多趨勢預測的地方,例如CPU,磁碟,io以及訂單流水等。一般上趨勢預測法又稱趨勢分析法。是指自變數為時間,因變數為時間的函式的模式。具體又包括:趨勢平均法、指數平滑法、直線趨勢法、非直線趨勢法。趨勢預測法的主要優點是考慮時間序列發展趨勢,使預測結果能更好地符合實際。根據對準確程度要求不同,可選擇一次或二次移動平均值來進行預測。下面選取了兩種趨勢預測方法。

3.3.1 Arima/arma

      ARIMA(p,d,q)模型全稱為差分自迴歸移動平均模型(Autoregressive Integrated Moving Average Model,簡記ARIMA),AR是自迴歸, p為自迴歸項; MA為移動平均,q為移動平均項數,d為時間序列成為平穩時所做的差分次數。

     所謂ARIMA模型,是指將非平穩時間序列轉化為平穩時間序列,然後將因變數僅對它的滯後值以及隨機誤差項的現值和滯後值進行迴歸所建立的模型。ARIMA模型根據原序列是否平穩以及迴歸中所含部分的不同,包括移動平均過程(MA)、自迴歸過程(AR)、自迴歸移動平均過程(ARMA)以及ARIMA過程。

先解釋一下差分: 假設y表示t時刻的Y的差分。

ARIMA的預測模型可以表示為:

其中,ϕ表示AR的係數,θ表示MA的係數其中,ϕ表示AR的係數,θ表示MA的係數。

下面我們選取了

一些具有周期性(7天)的某地區物流訂單測試資料,通過ARIMA模型做預測。

  1. 獲取被觀測系統時間序列資料;
  2. 對資料繪圖,觀測是否為平穩時間序列;對於非平穩時間序列要先進行d階差分運算,化為平穩時間序列;
  3. 經過第二步處理,已經得到平穩時間序列。要對平穩時間序列分別求得其自相關係數ACF 和偏自相關係數PACF ,通過對自相關圖和偏自相關圖的分析,得到最佳的階層 p 和階數 q
  4. 由以上得到的d、q、pd、q、p ,得到ARIMA模型。然後開始對得到的模型進行模型檢驗。

                      圖 一次差分和二次差分時間序列圖

                                     圖acf 和pacf  

        圖   殘差做自相關圖

                                           圖 模型預測

3.3.2 FBprophet

    prophet的整體框架,整個過程分為四部分:Modeling、Forecast Evaluation、Surface Problems以及Visually Inspect Forecasts。從整體上看,這是一個迴圈結構,而這個結構又可以根據虛線分為分析師操縱部分與自動化部分,因此,整個過程就是分析師與自動化過程相結合的迴圈體系,也是一種將問題背景知識與統計分析融合起來的過程,這種結合大大的增加了模型的適用範圍,提高了模型的準確性。

按照上述的四個部分,prophet的預測過程為:

(1)建立時間序列模型。分析師根據預測問題的背景選擇一個合適的模型。

(2)模型評估。根據模型對歷史資料進行模擬,在模型的引數不確定的情況下,我們可以進行多種嘗試,並根據對應的模擬效果評估哪種模型更適合。

(3)呈現問題。如果嘗試了多種引數後,模型的整體表現依然不理想,這個時候可以將誤差較大的潛在原因呈現給分析師。

(4)以視覺化的方式反饋整個預測結果。當問題反饋給分析師後,分析師考慮是否進一步調整和構建模型。

      Prophet適用於有如下特徵的業務問題:有至少幾個月(最好是一年)的每小時、每天或每週觀察的歷史資料;有多種人類規模級別的較強的季節性趨勢:每週的一些天和每年的一些時間;有事先知道的以不定期的間隔發生的重要節假日(比如國慶節);.缺失的歷史資料或較大的異常資料的數量在合理範圍內;有歷史趨勢的變化(比如因為產品釋出);對於資料中蘊含的非線性增長的趨勢都有一個自然極限或飽和狀態。

模型的整體構建如下:

       模型(1)整體由三部分組成:growth(增長趨勢)、seasonality(季節趨勢)以及holidays(節假日對預測值的影響)。

其中g(t)表示增長函式,用來擬合時間序列中預測值的非週期性變化;s(t)用來表示週期性變化,比如說每週,每年中的季節等;h(t)表示時間序列中那些潛在的具有非固定週期的節假日對預測值造成的影響。最後為噪聲項,表示模型未預測到的波動,這裡假設是高斯分佈的。

     可以看出這是一種類似generalized additive model(GAM)的模型,不同於以往的時間序列預測模型(例如ARIMA),上述的模型 將預測問題視作曲線擬合問題。這樣做具有很多實踐價值:靈活度高,許多具有不同週期以及不同假設的季節性趨勢能很容易的被引入;時間序列中無需有一個固定的週期,也不需要在擬合前對缺失值進行填補,這是傳統的(例如ARIMA)模型所辦不到的;.擬合非常快,允許分析師互動式的探索模型的效果;.模型中引數的解釋性很強,可以讓分析師根據啟發來增強某部分假設。

                                 圖 Prophet預測

                        圖 Prophet成分分析效果圖

                           圖   磁碟容量趨勢

3.3 4PL容量評估研究

     我們對第四方物流資訊平臺容量評估需要通過許多方面,通過參考技術評審指標,保證系統架構設計滿足使用者和系統對非功能質量的需求。

                                      表 應用伺服器

指標分類

部署結構

容量和效能

其他

1

負載均衡策略

每天請求量

請求的內容是否包含大物件

2

高可用策略

各介面訪問峰值

GC收集器的選型和配置

3

IO模型(NIO/BIO)

平均請求相應時間

4

執行緒池模型

最大請求相應時間

5

執行緒池執行緒數量

線上使用者量

6

是否多業務混布

請求大小

7

網絡卡IO流量

8

磁碟IO負載

9

記憶體使用情況

10

cpu使用情況

    根據應用層的訪問量和訪問峰值,計算出需要的資料庫資源的QPS,TPS,每天的資料總量等,由此來評估所需資料庫資源的數量和配置,部署結構等。

                                           表 資料庫

指標分類

部署結構

容量和效能

其他

1

複製模型

當前資料容量

查詢是否走索引

2

失效轉移策略

每天資料增量(預估容量)

有沒有大資料量的查詢

3

容災策略

每秒讀峰值

有沒有多表關聯,關聯是否用到索引

4

歸檔策略

每秒寫峰值

有無用悲觀鎖,是否可以改成樂觀鎖,或者是否可以利用資料庫內建行級鎖

5

讀寫分離策略

事務量

事務和一致性級別

6

分庫分表(分片)策略

使用的JDBC資料來源型別,連線數等配置

7

靜態資料和半靜態資料是否使用快取

是否開啟JDBC診斷日誌

8

有沒有考慮快取穿透壓垮資料庫的情況

有沒有儲存過程

9

快取失效和快取資料預熱策略

伸縮策略(分割槽表,自然時間分表,水平分庫分表)

10

快取失效和快取資料預熱策略

水平分庫分表實現方法(客戶端,代理,Nosql)

    根據應用層的訪問量和訪問峰值,通過評估熱資料佔比,計算出的快取資源的大小,存取快取資源的峰值,由此來計算所需快取資源的數量和配置,部署結構等。

                                                       表 快取

序號/指標分類

部署結構

容量與效能

其他

1

複製模型

快取內容的大小

冷熱資料比例

2

失效轉移

快取內容的數量

是否有可能快取穿透

3

持久策略

快取內容的過期時間

是否有大物件

4

淘汰策略

快取的資料結構

是否使用快取實現分散式鎖

5

執行緒模型

每秒讀峰值

是否使用快取支援的指令碼

6

預熱方法

每秒寫峰值

是否避免了Race Condition

7

分片Hash策略

快取分片方法(客戶端,代理,叢集)

    根據應用層的訪問量和訪問峰值,計算需要訊息佇列傳遞的資料內容和資料量,計算出的訊息佇列資源的數量和配置,部署結構等。

                                                      表 訊息佇列

指標分類

部署結構

容量與效能

其他

1

複製模型

每天平均資料增量

消費執行緒池模型

2

失效轉移

訊息持久的過期時間

分片策略

3

持久策略

每秒讀峰值

訊息的可靠投遞

4

每秒寫峰值

5

每條訊息的大小

6

平均延遲

7

最大延遲

      量級評估標準:容量按照峰值5倍冗餘計算。會員常用地址容量按照30年計算,而物流訂單時效性較強按照3年計算。第三方查詢介面5000 QPS。

Mysql單埠讀:1000 QPS,單埠寫:700 TPS,單表容量:5000萬條

Redis單埠讀:4萬 QPS,單埠寫:4萬 TPS,單埠記憶體容量:32G

Kafka單機讀:3萬 QPS,單機寫:5000 TPS,應用伺服器,請求量每秒峰值:5000 QPS

     容量規劃的關鍵就是找出系統可承載的最大壓力,然後根據極限壓力再做部署規劃,話說的容易,其實這往往是最困難的部分,因為它不像杯子那種容器,其容量是很直觀的、可以提前確定。而伺服器的效能是不好估量的,看不到摸不著,其容量只能通過實際測試才能得到。再說,我們所運維的系統可是由數以千計的機器組成的,這麼多機器對系統的容量都起到決定性的作用,而且大多數情況下各個機器的效能是不一致的,一臺機器的容量資料不能作為其他機器的標準,總之各伺服器都有自己的極限容量。就像電池一樣,有的電池容量較大,2600毫安,有的容量較小,2000毫安,因此,它們各自的續航時間是不同的。

     其中, P%為容忍度,γ是容量資料(線路總流量)中第P百分位數的值,BW是容量全值(線路預購頻寬),α是容量利用率(線路頻寬利用率)的空閒閾值,β是繁忙閾值。考慮廣域網兩端協議信令互動,一般預留15%頻寬給信令通道和緩衝區,故α=60%,β=85%。

  1. 當 γ/BW ≥ β ,認為容量已經擁塞 ;
  2.  當 α<γ/BW<β,認為在 P% 的概率下,容量利用率正常,既無擁塞也不空閒 ;(1-P)% 的概率下發生擁塞 ;
  3.  當 γ/BW ≤ α,認為在 P% 的概率下,容量利用率為閒置。容忍度(P%)關乎網路傳輸質量,其值越高,表示對線路擁塞的期望越低。

    通過持續觀察,根據線路總流量頻率直方圖近似於正態分佈的特性,將線路總流量近似為正態分佈。據此,如果將距離平均值 ±3 個標準差的數值分佈99.7% 設為容忍度 P 則會過於嚴苛,運營成本激增,故取95.4% 的樣本數值(距離平均值 ±2 個標準差)為容忍度 P。

    有規律的突發流量預示著後臺服務效能瓶頸、前臺業務模式調整、QoS策略匹配失效等問題,必須對其進行模式識別。通過時間 序列自相關(ACF)檢測,判斷突發流量究竟是否存在內部相關性和變化規律,即是否獨立性(白噪聲)。對於存在自相關性的突發流量時間序列,使用流量分析工具並結合業務量統計,分析這些規律突發的背後成因。對於判定為白噪聲的突發流量時間序列,則可以認為其不存在自相關性,是偶發事件,雖無需擴容但需檢查核心交易系統的超時情況,以驗證QoS策略是否能發揮預期作用。以某線路出方向突發流量資料為例,其ACF的Box-Ljung統計量在1階延遲處顯著性就小於0.05,所以拒絕獨立性(白噪聲)假設,推斷突發流量有規律可循。

我們還必須對業務量的壓力進行預測,結合量化分析結果,評估後期應對能力和風險。

  1. 上線前新業務需求壓力量化評估。傳統評估方法僅根據業務規劃和經驗預估高峰併發量,或將所需傳送總量直接平均至工作時段,推算出所需平均網路頻寬。雖然基於應用邏輯,可以使用 LoadRunner模擬執行壓力,不僅全網模擬異常耗時耗力,而且僅憑過往經驗推算今後併發量有欠妥當,必須考慮一種將業務量增長規劃轉化為實際執行壓力指標的便捷辦法。實際上,每個系統都是依次為佇列中的客戶服務,所以量化評估併發量的關鍵在於如何應用排隊論理論進行估算。一般而言,併發量(線上使用者數)滿足泊松分佈,且通常都遠大於 20(μ ≥ 20),故可認為符合標準正態分佈。

使用利特爾法則(Little’slaw)和 Eric Man Wong 的峰值併發計算方法,將應用所需處理的業務量視作“估算排隊客戶數”,計算平均和高峰併發業務量,再根據實測的單筆業務量的最小所需資源(即單筆業務量的最小頻寬需求,也是業務最大忍受極限)對業務的需求壓力給出了 99.87%置信度情況下預測。這個方法僅從業務量統計分佈預測應用頻寬所需,不依賴測試環境條件,不侷限於應用型別,所以可以方便地在每次新業務上線前進行預測。

(1)短期估算。短期估算是以月為觀察週期,考察對容量使用情況的影響因素如何持續作用。我行選擇擬合度較好的自迴歸積分移動平均數(ARIMA)模型並生成預測值。在訓練時,以總頻寬為因變數,以7 種業務型別的流量為自變數,對加法和移位水平進行離群值檢查。

(2)長期估算。經過數月的穩定執行後,可以考慮對每個業務型別的流量資料進行分佈特性分析,構建總頻寬(因變數)對各個業務型別流量(自變數)的迴歸方程。由於僅是對專線頻寬的容量進行迴歸分析,其成因明確,關係簡單,所以可以直接使用多元線性迴歸,在此基礎上再進行蒙特卡洛隨機模擬,以模擬模擬方法預測容量使用情況的極值。

3.4PL告警預測研究

     第四方物流資訊平臺通過資料採集、資料處理、資料儲存、資料展示、資料預警的方式進行對現場環境裝置、網路、溫溼度、電量、開關、裝置執行狀態、壓力、能源資訊進行集中化實施展示分析。根據容量計算演算法對機櫃配電容量、冷卻容量、裝機量進行預警、評估、擴容優化。通過平臺數據介面二次開發將預警資料進行實施傳輸到運維人員工作通訊群等平臺,實現了執行資料資訊共享化、預警資訊實時化。

ALARM_OBJECT

被告警物件

ALARM_LEVEL

告警級別:嚴重,警告,資訊

START_TIME

告警開始時間

END_TIME

告警結束時間

ALARM_MESSAGE

告警訊息

合併相似告警

一般上告警處理步驟:

(1)告警過濾(將告警中不重要的告警以及重複告警過濾掉)

(2)生成派生告警(根源關聯關係生成各類派生告警)

(3)告警關聯(同一個時間窗內,不同型別派生告警是否存在關聯)

(4)權重計算(根據預先設定的各類告警的權重,計算成為根源告警的可能性)

(5)生成根源告警(將權重最大的派生告警標記為根源告警)

(6)根源告警合併(若多類告警計算出的根源告警相同,則將其合併)

(7)根據歷史告警處理知識庫,找到類似根源告警的處理方案,智慧地給出解決方案。

      告警對第四方物流資訊平臺運維來說可以發揮的作用包括:

1 資料分析平臺。大量而來源廣泛的事件實際上代表著IT的執行狀態,所以通過大資料對告警事件的分析,可以得到一些有價值的IT執行規律和執行趨勢。例如運維中一些重大事件的發生與具體業務系統的關係;重大事件與時間點的關係,不同業務系統發生故障之間潛在的關聯關係,不同事件來源之間的互相影響關係和分析等。大資料已經廣泛應用,但監控上的大資料確實不多見。

2 知識庫。事件的發生和處理在運維是屬於大概率事件和重複性事件,所以對於處理後的事件的儲存實際上是對於過去運維經驗和知識的積累。知識庫的建議可以減少新人從無到有的熟練時間,也可以減少事件的處理時間和難度。

3 IT服務流程。經過過濾的告警事件將被送到服務流程的事件管理中形成工單,這種工具形成的工單比人肉發現的工單更有廣泛性和實效性。當工單處理完畢後,事件平臺上的事件要改變屬性,以便形成事件管理的閉環。

4 業務大屏。業務的執行狀態可以通過監控大屏展現出來。這種展現不僅是運維門面的需要,也是IT瞭解業務整體狀態的第一手資料,只有大屏才可以在目前監控軟體分別監控的狀態下將各個監控資料進行重新的展示和演繹,以符合整體展示的目的。而告警事件是監控大屏很重要的一環。

5 事件通知。

6 運維自動化。經過預選的告警事件發生後,可以自動觸發管理動作,如事件的自動解決等。當然在現實監控專案中,這種預選的事件是有條件的,比如大家已經很清楚原因、規律,處理動作比較清晰和明確,影響面可以控制等。坦率的說,事件的自動化處理不推薦大規模使用,因為事件的環境微小的改變,你預設的處理步驟都可以受到影響,進而出現錯誤的結果。

7 分析報表。分析報表不是什麼新技術,但是分析報表永遠可以在第一時間將你最需要知道的東西完整展示給你。你想做SLA(服務水平管理協議),想得到可用性的KPI,那就一定是按照某種演算法對事件的綜合計算來得到。

    在進行告警預測,運用TF-IDF演算法從日誌中獲取異常的欄位,然後運用k-means聚類形成指標,在運用FP-growth關聯規則將欄位關聯哪一類故障。

    k-means演算法是很典型的基於距離的聚類演算法,採用距離作為相似性的評價指標,即認為兩個物件的距離越近,其相似度就越大。該演算法認為簇是由距離靠近的物件組成的,因此把得到緊湊且獨立的簇作為最終目標。  k個初始類聚類中心點的選取對聚類結果具有較大的影響,因為在該演算法第一步中是隨機的選取任意k個物件作為初始聚類的中心,初始地代表一個簇。該演算法在每次迭代中對資料集中剩餘的每個物件,根據其與各個簇中心的距離將每個物件重新賦給最近的簇。當考察完所有資料物件後,一次迭代運算完成,新的聚類中心被計算出來。如果在一次迭代前後,J的值沒有發生變化,說明演算法已經收斂。

演算法過程:

   1)從N個文件隨機選取K個文件作為質心

2)對剩餘的每個文件測量其到每個質心的距離,並把它歸到最近的質心的類

3)重新計算已經得到的各個類的質心

4)迭代2~3步直至新的質心與原質心相等或小於指定閥值,演算法結束

         說明如下:首先從n個數據物件任意選擇 k 個物件作為初始聚類中心;而對於所剩下其它物件,則根據它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所代表的)聚類;然後再計算每個所獲新聚類的聚類中心(該聚類中所有物件的均值);不斷重複這一過程直到標準測度函式開始收斂為止。一般都採用均方差作為標準測度函式. k個聚類具有以下特點:各聚類本身儘可能的緊湊,而各聚類之間儘可能的分開。

  具體如下:

輸入:k, data[n];

  (1) 選擇k個初始中心點,例如c[0]=data[0],…c[k-1]=data[k-1];

  (2) 對於data[0]….data[n],分別與c[0]…c[k-1]比較,假定與c[i]差值最少,就標記為i;

  (3) 對於所有標記為i點,重新計算c[i]={ 所有標記為i的data[j]之和}/標記為i的個數;

(4) 重複(2)(3),直到所有c[i]值的變化小於給定閾值。

                             k-均值演算法

Algorithm k-means(k,D)

     choose k data points as the initial centroids (cluster centers)

repeat

    for each  data point x ∈ D do

     compute  the  distance from  x to each centroids;

  assgin x to the closest centroids  

         endfor

 re-compute the centroids using the current cluster memberships

    until the stopping criterion is met

     TF-IDF(term frequency–inverse document frequency)是一種用於資訊檢索與資訊探勘的常用加權技術。TF-IDF是一種統計方法,用以評估一字詞對於一個檔案集或一個語料庫中的其中一份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。

    TF-IDF演算法是建立在這樣一個假設之上的:對區別文件最有意義的詞語應該是那些在文件中出現頻率高,而在整個文件集合的其他文件中出現頻率少的詞語,所以如果特徵空間座標系取TF詞頻作為測度,就可以體現同類文字的特點。另外考慮到單詞區別不同類別的能力,TF/IDF法認為一個單詞出現的文字頻數越小,它區別不同類別文字的能力就越大。因此引入了逆文字頻度IDF的概念,以TF和IDF的乘積作為特徵空間座標系的取值測度,並用它完成對權值TF的調整,調整權值的目的在於突出重要單詞,抑制次要單詞。

     FP-growth演算法是基於Apriori原理的,通過將資料集儲存在FP(Frequent Pattern)樹上發現頻繁項集,但不能發現數據之間的關聯規則。FP-growth演算法只需要對資料庫進行兩次掃描,而Apriori演算法在求每個潛在的頻繁項集時都需要掃描一次資料集,所以說Apriori演算法是高效的。

     FP表示的是頻繁模式,其通過連結來連線相似元素,被連起來的元素可以看成是一個連結串列。將事務資料表中的各個事務對應的資料項按照支援度排序後,把每個事務中的資料項按降序依次插入到一棵以 NULL為根節點的樹中,同時在每個結點處記錄該結點出現的支援度。FP-growth演算法的流程為:首先構造FP樹,然後利用它來挖掘頻繁項集。在構造FP樹時,需要對資料集掃描兩邊,第一遍掃描用來統計頻率,第二遍掃描至考慮頻繁項集。

 在構建了FP樹之後,就可以抽取頻繁項集了,這裡的思想和Apriori演算法大致類似,首先從氮元素項集合開始,然後在此基礎上逐步構建更大的集合。大致分為三個步驟:

(1)從FP樹中獲得條件模式基;

(2)利用條件模式基,構建一個條件FP樹;

(3)迭代重複(1)和(2),直到樹包含一個元素項為止。

首先,獲取條件模式基。條件模式基是以所查詢元素項為結尾的路徑集合,表示的是所查詢的元素項與樹根節點之間的所有內容。結合構建FP樹繪製的圖,r的字首路徑就是{x,s}、{z,x,y}和{z},其中的每條字首路徑都與一個計數值有關,該計數值表示的是每條路徑上r的數目。為了得到這些字首路徑,結合之前所得到的頭指標表,頭指標表中包含相同型別元素連結串列的起始指標,根據每一個元素項都可以上溯到這棵樹直到根節點為止。

3.5 4PL故障診斷研究

      接下來說明預測報警後,如何進行故障定位。我們會根據top值來找到佔比比較高的程序,由於直接處理佔比比較高的程序會有風險,所以我們只會郵件通知負責人以及運維人員。第四方物流智慧運維故障管理是網路管理的一項重要功能 ,包括故障的發現、故障的快速定位以及故障的修復。其中故障的快速定位是關鍵 ,也是難點。如果能夠設計出基於人工智慧和模式識別的系統將眾多的告警進行關聯分析 ,並利用資料探勘技術對效能資料進行分析 ,識別告警模式 ,就能自動找出故障源 ,將可大大提高管理維護工作的時效性。 一個好的故障診斷系統應具有較強的魯棒性和擴充套件性以適應通訊技術 的快速發展。目前有一些網路故障解決辦法 ,如: 程式碼本、貝葉斯網路、基於模型推理、基於案例的推理等方法。

                             DBscan

輸入:半徑ϵ,給定點在ϵ鄰域內成為核心物件的最小鄰域點數MinPts,

資料集D 輸出:目標類簇集合 

Repeat: (1) 判斷輸入點是否為核心物件

  1. 找出核心物件的ϵ鄰域中的所有直接密度可達點 Until 所有輸入點都判斷完畢 

Repeat: 針對所有核心物件的ϵ鄰域內所有直接密度可達點找到最大密度相連物件集合,中間涉及到一些密度可達物件的合併

 Until 所有核心物件的ϵϵ鄰域都遍歷完畢

1)針對每個參量的歷史資料,通過AR 模型、SOM 演算法計算出轉移概率矩陣{X1,X2, …,XN}。

2)針對所有參量的歷史資料,通過第 2 節中的 DBSCAN 演算法對該多元時間序列進行聚類,將歷史資料聚成 m 個簇。

3)將線上監測的實時資料流代入 1)中的轉移概率矩陣得到各參量的轉移概率序列,並判斷各時間點的資料是否屬於 2)中的 m 個聚類。

4)根據 3)中的結果對資料流進行異常檢測,異常檢測邏輯如下:

①當各參量的轉移概率序列都不存在 0 值,且資料流中各時間點的資料屬於 m 個簇