AIOps,即 Artificial Intelligence for IT Operations,智能運維,將人工智能應用于運維領域,基于已有的運維數據(日志、監控信息、應用信息等),通過機器學習的方式來進一步解決運維沒辦法解決的問題。
早期的運維工作大部分是由運維人員完成的,這被稱為手工運維或人肉運維。很明顯,在互聯網業務快速擴張、人力成本高企的時代,這種落后的生產方式難以維系。
從BSS3.0到極簡受理,在AIOps領域上我們是怎么摸爬滾打一步步迭代的呢?
回到最初的異常處理方案:《BSS3.0-系統優化提升-異常編碼規范與異常處理方案》,其流程如下:


通過字典識別異常,查詢日志,然后定位問題。由于業務發展、人員迭代原因,上述流程遠遠不夠:
日志規范沒有嚴格執行:編碼規范的落實沒有監督、各中心代碼沒有按規范落實、異常編碼的定義、調用并未遵循規范。
邊界模糊問題找不到人:規范定義業務沒有區分角色,營業員可以看,運維人員可以看,開發也可以看。當前由運維人員管理,他必須了解掌握所有錯誤,才能做出準確的判斷。
沒有沉淀每次都是新問題:運維事務沒有反饋,沒有總結。操作成果沒有沉淀,沒有歸檔傳承下來。
靜態字典:只能解釋老場景,識別不了新情況,也經常存在人工維護缺失的問題。
被動防御不能主動“自愈”:人肉運維,沒有自動化運維手段。
為解決現狀存在的問題,我們在業務系統改造過程中,引入了AI智能識別技術。但是AI的引入不是推翻重來,而是兼具業務和AI兩方面視野。要使AIOps服務能力與受理系統、運維流程、專家經驗緊密結合在一起,從而更精準地定位、更有效地解決受理領域的運維問題。
受理業務復雜性與相應需求越來越多。特別是分布式架構到來后,一些運維要求,如微服務、中間件、分布式給運維管理帶來了巨大的挑戰。單純增加人力已經滿足不了現在的運維要求。
當前運維人員90%的時間都用來識別發現故障的原因。與此同時,各專業運維支撐系統功能也面臨開發周期長、閉環流程自動化程度低的技術瓶頸。對此,運營商期望引入AI、大數據分析等技術,實現智能運維,做到主動維護和故障“自愈”。
AIOps平臺能力的構建,已經成為各行業智能化演進的一大趨勢和主要方向。

智能化運維在實際運用過程中,優先要解決幾個關鍵問題:
故障樣本更全面:從java異常架構出發,事先導出所有異常樣本
診斷字典更精準:運用NER(實體識別)+solr(搜索引擎)抽取異常特征

樣本的全面性處理主要通過下面2步進行:
1)樣本庫3大來源分別是:應用代碼、中間件、業務系統。采集手段不盡相同。應用代碼通過java異??蚣?,由其繼承關系,進行全量遍歷,搜集全量的異常關鍵字。中間件和業務系統的手段則是通過日志來獲取。
2)得到上述基本數據后系統再進行加工,加工的工具有apache的NLP和Solr。加工的流程如圖所示,粗濾→規范→增強→歸并→精濾。通過以上環節得到的情景所需的特征keyword。
上述2步作為前提應用到我們運維場景。
在這里我們提供了識別引擎和預定義處理場景。當匹配到我們特征異常出現,預定義的場景功能自動觸發,無需人工干預即可自動化完成。
搜集系統所有的異常形成特定標識,積累自動化運維規則引擎觸發的判定條件。

繼承是java面向對象編程技術的一塊基石,通過繼承創建分等級層次的子類。從java架構通過反射獲取到全量異常的關鍵字錄入字典庫。如圖所示,關鍵代碼:


其遍歷結果持久化入庫,如圖所示:


中間件的異常場景和業務的異常場景不能一蹴而就,需要在日常運行過程日志中挖取和積累。
中間件異常場景與上述java應用相比范圍相對固定,但方法不同。我們通過ELT組件歸集日志,粗濾篩選出異常特征,錄入知識庫。在系統中我們形成標準樣本庫后,以后的項目就可以復用,最大化這塊價值。提供樣本供其他省份借鑒。


利用NLP手工標識異常
利用ELK進行日志歸集在這里不再累述,關注的是怎么從日志中挖掘出異常特征。關鍵技術在NLP和solr:Apache OpenNLP庫是一個基于機器學習的自然語言文本處理的開發工具包,它支持自然語言處理中一些共有的任務,例如:標記化、句子分割、詞性標注、固有實體提?。ㄖ冈诰渥又斜嬲J出專有名詞,例如:人名)、淺層分析(句字分塊)、語法分析及指代。這些任務通常都需要較為先進的文字處理服務功能;Solr是Apache Lucene項目的開源企業搜索平臺。其主要功能包括全文檢索、命中標示、分面搜索、動態聚類、數據庫集成,以及富文本的處理:


結合數據流處理流程和關鍵技術的應用最終獲取異常特征庫
這種場景下,拋錯內容AI計算,即精準錯誤定位。有它,明顯可以帶來以下好處:減少等待、減少溝通成本、劃清角色邊界從而提高工作效率、減低成本、提升客戶體驗。想象一下,如果拋出一個異常不能精準定位的反向情景:客戶在營業廳等待抱怨,營業員再緊張上報溝通,運維人員一頭大......


半自動化運維是異常識別的加強版,在識別的基礎上提供預定義處理方案。這些預定義處理可以是api,可以是sql腳本。都是以往運維處理手段日常積累后的程序化手段,并沒有直接處理,決定權交給操作人員。也由自動處理的,操控權的級別取決于以往的準確率統計,當準確率達到95%后即可以上升自動調用級別。
準確性:通過對運維專家庫的不斷豐富,系統處理過程中的異常提示會越來越精準,一線人員在判定錯誤類型時,也更加易懂和高效。
減少誤報消耗:減少角色間的溝通成本,減少運維人員的人力成本。
專家系統基于知識的系統,知識庫和推理機是其重要組成部分。其三要素:領域專家級知識、模擬專家思維、達到專家級的水平。在極簡受理中我們有業務專家、研發專家、中間件專家。將專家的工作思考邏輯轉譯到知識庫中,利用現有的規則引擎提供專業的指導意見。


實時發現告警,預診斷分析,自動恢復故障,并打通周邊系統實現整個流程的閉環。


運維正在從后勤保障轉變成業務伙伴,從成本中心轉變到利潤中心,從對基礎設施“穩定、安全、可靠”的追求,轉變為以支撐數字化業務的“體驗、效率”為工作中心。運維順應這些發展和變化,必須加強對應用程序性能的監控分析和自動化的能力,從而提高運維的敏捷性。
AIOps已然成了輔助企業運維的不二法寶,期望采用AI技術來建立數據之間相關性以及進行預測性分析,獲得更準確,更智能的數據結果。
各位同學可以掃描上方二維碼,添加胖鯨小助理,回復關鍵字“進群”申請入群。
大家可以和 鯨品堂 讀者一起暢所欲言,和編輯們零距離接觸,超值的技術禮包等你領取,超值活動等你參加,快來加入我們吧!