人工智慧在IT運維中的研究和應用
https://www.toutiao.com/a6690326451557761540/
本文節選自《金融電子化》2019年04月刊
作者:中國民生銀行資訊科技部 孔再華 朱彬 周鵬 王健
編者按
本文首先闡述了人工智慧技術為IT運維帶來的挑戰與轉機,接下來對民生銀行的智慧運維實踐進行介紹說明。
金融行業是當今實現電子化發展最靠前的行業之一,商業銀行尤其如此。IT建設在此背景下也成為企業重中之重,幾乎所有的重要業務都需要資訊系統支撐。這對於資訊系統的業務連續性要求非常高。一旦資訊系統出現異常或者處理不及時,損失將會非常慘重。因此金融行業的IT運維首要任務是確保重要業務在運營中斷事件發生後快速恢復,降低或消除因重要業務運營中斷造成的影響和損失,保障業務持續運營。
商業銀行IT運維的挑戰
商業銀行的IT運維面臨非常多的挑戰。
系統多:電子化的高速發展直接反應在商業銀行需要管理的資訊系統規模越來越龐大。大量的系統佔用了大量的硬體裝置,產生了大量的資料。尤其是移動網際網路等業務的發展,各類分散式技術的使用,大資料的使用等。系統的裝置數量在這幾年幾乎是爆炸式的增長。這麼多的系統都需要監控和管理好,對IT運維是非常大的挑戰。
環境多:這裡的環境多主要是指技術產品比較多。不同業務系統的特點要求差異化的技術產品。資料中心存在著眾多不同型號的主機、儲存、網路、中介軟體、資料庫、大資料和分散式等產品。新業務的推廣和新技術的運用是一個持續的過程。所以技術產品的監控和管理也是很大的挑戰。
資料多:這裡的資料僅僅是指運維過程中產生的可監控資料,非業務資料。 即便如此,大量的系統、產品,產生了大量的監控資料。這裡包含資料指標多和指標資料多兩個方面。大量的指標要一一監控並制訂規則費時費力。單個指標不停產生的資料量也非常可觀,這些大資料也存在挖掘價值。
面對如此大規模的系統和資料需要進行管理,傳統的監控和自動化運維存在一些痛點。資料中心現有的效能容量分析手段僅僅做到對效能容量的單項指標監控和進行大致的趨勢分析。例如監控CPU、記憶體、IO、檔案系統使用率等資訊,然後根據經驗人為設定閾值,超過閾值就進行告警。這種自動化運維是“基於人為指定規則”的模式,需要大量人力資源來分析和制訂規則。
當告警發生後,還需要人及時登入系統分析是什麼原因導致告警的產生。這一點完全依賴處理人的經驗和水平。對於效能容量類問題的分析,人力運維是基於專家經驗和產品理論的基礎,無法快速準確定位到問題根源,在日常處理問題的過程中存在不足。因此當前的運維能力是不能做到對問題根源進行深度和快速分析的。
人工智慧為IT運維帶來轉機
1.人工智慧與機器學習。 人工智慧(Artificial Intelli-gence)是電腦科學的一個分支,是包含應用電腦科學、生物學、心理學、神經科學、數學、統計學和哲學等學科的科學和技術。人工智慧的應用領域非常廣泛,尤其在智慧機器人、自然語言處理、影像識別、語音識別、專家系統、智慧搜尋等應用場景表現突出。“機器學習”(Machine Learning)是人工智慧的核心研究領域之一,也是實現人工智慧的核心方法。機器學習顧名思義,是賦予機器(計算機)學習的能力,通過分析已有的資料,獲取資料的內部規律或者價值,並且實現對新資料的處理方法。
機器學習最強大的能力是分類和迴歸。 眾多機器學習模型都是為了實現這兩種能力。各種應用場景都是基於這兩種能力的應用。分類能力很好理解,例如判斷一張圖片是貓還是狗。迴歸則是預測連續的值,例如根據房屋的地理位置、面積等特徵預測房價。在IT運維中,我們需要機器學習的分類能力來判斷當前指標是正常還是異常,需要回歸能力來預測容量等。將人工智慧技術運用到IT運維中,將為解決傳統IT運維面臨的難題帶來轉機。
2.智慧化運維AIOps。 人工智慧技術運用在IT運維中,提升運維能力,這就是AIOps(Artificial Intelligence for IT Operations)智慧化運維。智慧運維是在自動化運維的基礎上,利用機器學習的能力,改進和完善現有運維方式。智慧運維涉及場景也非常廣泛,包含異常檢測、異常預測、根因分析、輿情監控、異常自愈、智慧變更、問答機器人、容量管理和容量預測等。智慧運維的核心是挖掘海量運維資料的價值。因此在智慧運維建設中涉及到大資料技術、人工智慧技術、自動化技術等很多領域。
民生銀行一直在探索智慧運維的應用和落地。 民生銀行資訊科技部在各個運維環節都在嘗試結合人工智慧技術改進運維方式和運維能力。其中異常檢測和根因分析場景是故障運維的事中和事後處理環節,也是IT運維中最核心的部分。這套智慧運維繫統通過持續接受系統產生的效能資料,採用人工智慧技術,從歷史資料中獲取規則,生成相關分析方法,為實時資料提供運維分析能力(如圖1所示)。
機器學習與異常檢測
前面提到在IT運維中,效能資料的告警方式是通過人為制訂閾值結合自動化運維實現的,這種方式有兩個弊端。首先相同指標的閾值的定義是普適性的,所有的系統採用相同的閾值進行告警,不能為單獨的系統單獨設定,只有極少數系統人為調整過;其次是隻有人從經驗總結過的指標才會設定閾值告警,不熟悉的指標就忽略了。而機器學習的能力可以彌補上述兩種弊端。
該系統異常檢測功能將會分析每個系統的每個指標的歷史資料,產生機器學習模型,並對實時指標進行預測。因為歷史資料沒有標籤,也沒有能力去打標籤,所以異常檢測場景主要採用機器學習裡的無監督學習方法,在一群資料分佈中找到可疑的點。例如圖2例子中,紅色的點就是可疑點,需要標記出來。
為了尋找異常點,該系統異常檢測功能將會分析每個系統的每個指標歷史資料分佈,訓練出機器學習模型,然後對實時指標進行預測。
在眾多機器學習演算法中,民生銀行實踐比較好的演算法有如下幾種。
孤立森林:這個演算法的核心是找到“容易被孤立的離群點”,也就是分佈稀疏且離密度高的群體較遠的點。 這是一種基於連續資料的無監督異常檢測演算法。這個演算法穩定有效,並且不需要做資料預處理,例如歸一化、標準化等,因此是當前異常檢測首選演算法。
DBSCAN:DBSCAN其實是一種基於密度的聚類演算法,但是同樣適合用來檢測異常。 DB-SCAN基於一組鄰域來描述樣本集的密集程度,那麼密集程度特別稀疏的點就是需要尋找的異常點。DBSCAN有兩個引數ε和MinPts。ε是半徑,MinPts是半徑內的期望樣本個數。從異常檢測的思維來說,如果ε半徑內樣本數小於MinPts,說明密度低、樣本稀疏,是可疑點。這個演算法要求對原始資料做標準化處理,並且引數ε和MinPts需要交叉驗證找到比較通用的合適值。
3σ準則:這種異常檢測演算法是建立在樣本資料滿足高斯分佈的基礎上的。 通過對資料樣本求均值μ,標準差σ,距離μ點超過3倍σ的點概率上只有不到0.3%。這個演算法最大的問題是樣本原始資料不滿足高斯分佈就不適用了。但原始資料可以通過一些演算法轉變為符合高斯分佈的資料。Sk-learn工具提供了一些轉變方法,例如power transform方法和quantile transform方法等。
機器學習演算法中還有很多適合做無監督學習的異常檢測,這裡就不一一列舉。在這些方法的基礎上,我們還可以更進一步採用整合學習的方式,結合多個異常檢測演算法的結果做出最後的判斷,準確性會更好。
機器學習與根因分析
快速找到異常問題的根源是在異常處理過程中面臨的最大挑戰。 處理人需要從採集的大量資料分析問題的根本原因,還需要有豐富經驗才能做出正確判斷。這是比較耗時並且容易出錯的環節。如果機器學習模型能夠快速分析當前資料並幫助處理人做出正確判斷,那麼處理人只需要快速採取有效措施,大大減少異常問題處理的時間,減少損失。
問題根因分析其實是一個追本溯源的過程。 因為機器學習的能力是做預測,也就是依據特徵資料判斷結果。然而現在的需求是從結果找到影響最大的特徵資料。所以這裡要求機器學習的演算法有逆向的解釋性。根因分析主要使用機器學習裡的有監督學習演算法。民生銀行實踐比較好的演算法有如下兩種。
多元線性迴歸:這個演算法的核心是每個特徵值x對結果值y都有可量化的影響,也就是wx+b=y。 結果y發生的變化原因可以逆向找到影響最大的x是哪個指標,從而找到根因。這種演算法簡單可理解,然而對特徵值x還是有要求,最好是線性無關的特徵值集合。這種演算法適合迴歸型別的問題,例如分析CPU的佔用率就屬於這類問題。
決策樹:決策樹是一種分類演算法,呈樹形結構,是基於特徵對結果進行分類的過程。 決策樹可以看成是一對if-then規則的集合,也可以看作是條件概率分佈。這種演算法可讀性高,也就是可以逆向解讀是什麼特徵的分佈影響了最終結果的分類。
其他IT運維場景
智慧運維涉及場景廣泛,異常檢測和根因分析只是其中比較重要的兩個場景。機器學習的演算法也適用於很多其他運維場景。
異常預測: 異常預測是在異常檢測的基礎上分析已經獲取了有標籤的資料,通過機器學習的分類演算法,以歷史資料作為特徵,當前標籤作為結果而進行的預測。
日誌檢測: 日誌產生大量的文字資料。自然語言處理是人工智慧的強項。通過機器學習,對日誌內容提取,分類,可以實現日誌的異常檢測和問題分析。
系統畫像: 機器學習的眾多聚類演算法適合根據系統特徵對系統進行歸類,描繪系統畫像。例如總結出一個系統是讀取繁忙的系統還是IO負載較重的系統等。
問題管理: 問題管理也可以利用人工智慧對自然語言處理的能力,例如問題匹配通過機器學習的演算法,計算文字之間的相似度來匹配問題。
運維機器人: 運維機器人算是一套互動式系統,連線運維人員與目標系統。運維機器人能利用影像處理能力做登入人員安全驗證、通過語音識別獲取操作人員意圖、通過自然語言處理翻譯成執行指令等。
實踐結果與總結
民生銀行的智慧運維實踐還屬於起步階段,當前在異常檢測和根因分析方面取得一些階段性成果,將人工智慧運用在其他運維場景也在探索和開發中。
民生銀行智慧運維平臺當前已經上線了智慧故障發現與分析模組,包含智慧異常檢測,自動故障定位和呼叫鏈路分析等功能。 其中智慧異常檢測基於無監督學習,無需事先標註。系統全自動訓練異常檢測模型,定期更新模型引數,演算法不斷迭代,準確性高,漏報誤報少。這裡異常檢測採用多種模型,包含時序模型、孤立森林、DBSCAN、高斯分佈等演算法,最後通過整合演算法獲取最終檢測結果,演算法容錯性高,檢測結果更準確。
自動故障定位功能基於多元線性迴歸,決策樹,DB-SCAN聚類演算法等,分析不同指標之間的關係。 一方面量化上下級指標間的關聯關係,找到異常時刻貢獻度最大的根源指標。另一方面基於聚類演算法,找到相同行為的其他指標並展示出來。最終異常定位通過關係圖示一目瞭然,加快故障定位和處理。
民生銀行的系統是典型的SOA架構,系統之間呼叫比較多。 因此在故障定位過程中,上下游的關係也變得尤其重要。因此民生銀行對系統間訪問鏈路進行監控和分析,展示不同系統的上下游關係。呼叫鏈路分析功能支援交易效能分析,差錯分析,單筆交易鏈路分析,下鑽分析等分析行為。
機器學習的強大能力和應用前景已經非常清晰。 智慧運維就是將機器學習的能力充分利用到當前IT運維工作中,提高運維效率。人工智慧將為IT運維帶來非常大的好的改變。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2644130/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 人工智慧--運維應用人工智慧運維
- 人工智慧在智慧製造中的應用人工智慧
- Bilibili資深運維工程師:DCDN在遊戲應用加速中的實踐運維工程師遊戲
- 人工智慧(AI)在遊戲中的應用(下)人工智慧AI遊戲
- 人工智慧在資料壓縮中的應用人工智慧
- 人工智慧在新零售中的應用人工智慧
- 人工智慧在採購中的應用有哪些?人工智慧
- B站資深運維工程師:DCDN在遊戲應用加速中的實踐運維工程師遊戲
- 脈動陣列在二維矩陣乘法及卷積運算中的應用陣列矩陣卷積
- AIOps在京東資料庫運維中的典型應用AI資料庫運維
- AI在春運搶票中是如何應用的?AI
- ~,&,|,^等位運算子在JavaScript中的一些應用JavaScript
- 高效能運算在人工智慧(AI)智藥中的應用人工智慧AI
- 講堂丨人工智慧在天體物理中的應用人工智慧
- 人工智慧技術在24個行業中的應用人工智慧行業
- 人工智慧在媒體和娛樂中的應用——你的工作會被取代嗎?人工智慧
- 物料編碼在PDM與ERP整合中的應用研究
- Docker 運維高階應用管理Docker運維
- TiDB 在威銳達 WindRDS 遠端診斷及運維中心的應用TiDB運維
- 微信高階研究員解析深度學習在NLP中的發展和應用深度學習
- PDM系統在技術狀態管理中的應用研究
- 資料探勘在醫學大資料研究中的應用大資料
- alpakka-kafka(9)-kafka在分散式運算中的應用Kafka分散式
- 農業銀行智慧運維建設和應用實踐運維
- 5G+人工智慧技術在垃圾分類中的應用人工智慧
- 實景三維在城市規劃與建設中的應用
- Java技術在多資料庫系統中的應用研究Java資料庫
- 將設計思維應用於人工智慧人工智慧
- OPF理論在回合RPG中的分析和應用
- RxJs 運算子 withLatestFrom 在 SAP 電商雲 Spartacus UI 中的應用JSUI
- Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- 人工智慧在材料領域的應用有哪些?人工智慧
- Flink 在人工智慧領域的應用實踐人工智慧
- redis在nodejs中的應用RedisNodeJS
- redis在python中的應用RedisPython
- Refs 在React中的應用React
- HMM在NLP中的應用HMM
- MQTT 在 Elixir 中的應用MQQT