張兵 林華南 劉軻 余靖
摘要:(目的)探索智能運維平臺在業(yè)務應用系統(tǒng)運維中的應用,推動運維管理由傳統(tǒng)的人工模式向智能運維模式轉變,逐步達到業(yè)務應用系統(tǒng)的智能運維,實現故障自愈。(方法)通過人工智能(AI)、機器學習對運行故障進行建模分析,形成業(yè)務應用系統(tǒng)的故障診斷決策支持模型,再對模型不斷優(yōu)化和完善,結合運維專家決策知識庫,實現系統(tǒng)故障自愈。(結果)智能運維平臺在業(yè)務應用系統(tǒng)的應用,將機器學習與運維難題相結合,實現智能運維成果落地,為實現業(yè)務應用系統(tǒng)的“自動駕駛”做出了大膽嘗試和探索。(結論)智能運維平臺的應用提高了業(yè)務應用系統(tǒng)的可用性,增強了系統(tǒng)性能和系統(tǒng)健壯性,降低了運維成本,提升了系統(tǒng)運行效率和智能化程度。
前言
業(yè)務應用系統(tǒng)傳統(tǒng)運維方式是在系統(tǒng)部署上線后,通過固定周期的人工巡檢方式保障系統(tǒng)的平穩(wěn)運行。這種傳統(tǒng)方式,一方面需要硬件、網絡、系統(tǒng)、中間件、數據庫等不同技術專業(yè)的工程師協(xié)作共同完成,另一方面在兩個巡檢周期或非工作時間產生的故障不能及時得到有效處理。智能運維平臺將人工智能和大數據等技術手段應用到業(yè)務應用系統(tǒng)的運行維護,更好的實現系統(tǒng)智能化運維程度。本文主要探討智能運維平臺在業(yè)務應用系統(tǒng)運維中的應用與實踐。
1業(yè)務應用系統(tǒng)運維面臨的問題
1.1 ?業(yè)務應用系統(tǒng)基礎運行環(huán)境龐大,運維工作量大
業(yè)務應用系統(tǒng)的基礎運行環(huán)境由純物理機數據庫集群環(huán)境、基于 ESXi 主機的虛擬化集群環(huán)境、基于消息中間件MQ的數據交換環(huán)境、基于虛擬帶庫的集中備份環(huán)境、基于雙中心讀寫分離的容災備份環(huán)境、基于業(yè)務骨干網和外網的網絡環(huán)境、基于安全設備和日志審計系統(tǒng)的安全審計環(huán)境組成,由于不同的環(huán)境下均有系統(tǒng)要保證持續(xù)的運行,對于不同的環(huán)境各有不同的運維要求,對整體的系統(tǒng)運維帶來了很大的壓力。
如此多的硬件及網絡安全設備,僅僅完成日常的巡檢就需要非常多的工作量,給系統(tǒng)運維帶來了巨大挑戰(zhàn),同時也需要多名不同專業(yè)運維工程師,并且對運維工程師的技術能力也有很大的要求。
1.2 業(yè)務應用系統(tǒng)的技術架構復雜,運維難度大
業(yè)務應用系統(tǒng)的技術架構極其復雜,既有傳統(tǒng)的結構化數據,也有大量非結構化數據。技術路線涉及MySQL、Gbase數據庫以及NAS(網絡存儲)等文件保存技術,緩存數據采用內存數據庫REDIS,應用中間件采用 TOMCAT、NGINX,終端設備 APP移動端開發(fā)支持Android、IOS 系統(tǒng),還涉及消息中間件 MQ、ElasticSearch 全文搜索和分析引擎、微服務框架、深度學習框架、工作流引擎、爬蟲框架等技術架構。復雜的技術架構極造成運維難度大,對運維人員的技術能力要求較高。
1.3 ?業(yè)務應用系統(tǒng)的業(yè)務環(huán)節(jié)多,故障風險點多
業(yè)務應用系統(tǒng)從互聯網端采集或爬取海量信息,利用MQ通道傳輸到平臺的數據清篩程序,并將處理后的數據集中存儲。數據清篩程序根據數據主題類型、數據結構化與非結構化類型進行分歸并整合,分類入庫到相應的主題數據庫中,同時將處理狀態(tài)回寫到數據庫記錄中。上層應用可根據不同主題數據分類查詢、分析、通知。通過此數據分揀存儲方式不僅能滿足復雜的業(yè)務數據流轉和訪問需求,且能通過不同主題庫的分類處理方式提高業(yè)務應用數據的處理效率。但是,數據處理流程環(huán)節(jié)多,也增加了系統(tǒng)的故障點,增加了運維工作量。
2智能運維平臺需要解決的實際問題
2.1 ?實現自動化巡檢
通過任務調度引擎為業(yè)務應用系統(tǒng)提供全天候的自動化巡檢。自動化巡檢任務會在科學合理的時間,基本覆蓋工作時段及非工作時段。保證早上工作時間前進行一次巡檢,工作時間自動巡檢頻率設置的高一些,非工作時間巡檢頻率設置的低一些。自動巡檢完成后自動生成健康巡檢報告,通過運維動態(tài)展示巡檢報告,也可以根據系統(tǒng)設置給運維組內的工程師發(fā)郵件或短信。保證每天早上完成巡檢后,將巡檢報告總結以短信發(fā)送給運維組的運維工程師手機。
2.2 實現系統(tǒng)智能運維(自動駕駛)
通過智能運維模型的不斷優(yōu)化和完善,結合運維專家決策知識庫,逐步達到業(yè)務平臺的智能運維,實現故障自愈,為系統(tǒng)的“自動駕駛”進行大膽的嘗試和探索。
2.3 ?實現運維動態(tài)展示
通過足夠豐富的數據可視化工具,實現多層級運行展示,實現智能運維動態(tài)展示,可以實現三級的數據下鉆,主要內容包括:平臺運行總覽、監(jiān)控儀表板、報警故障結果展示、故障詳細信息下鉆、運行趨勢分析、數據地圖、故障分析、事件統(tǒng)計等功能。對于固有安全數據做出的分析行為,也可以借助運維決策知識庫為其提供的分析方式展開對比,進而達到提高運維決策準確性的目的。
對已經完成數據采集的運維數據進行全面、細顆粒數據挖掘與分類,可以按照不同維度對現有數據加以分類,按照360全視角結合運維專家知識庫進行運行健康狀況分析,分析系統(tǒng)運行趨勢,以趨勢圖、數據地圖等可視化分析展示形式進行運維動態(tài)整體展示。
2.4 報警事件生成
通過平臺可視化展示、提示音、郵件、短信等多種手段實時反映運行狀況及安全性,保證安全預警功能質量,進一步減少IT資源發(fā)生故障和安全運行狀態(tài)受到破壞的情況發(fā)生,全面降低故障導致的各種不必要損失現象。
實現報警智能生成功能,主要包括:各種網絡報警事件的及時生成、操作系統(tǒng)自動報警事件的及時生成、現有數據庫自動報警事件的及時生成、最終報警結果分析報表數據的計算功能等[1]。
2.5 ?報警規(guī)則配置
初步實現了對固有報警規(guī)則的靈活配置和展示管理,能夠保證實現報警規(guī)則配置有效性,主要包括:規(guī)則設置、閥值設置、運維工程師設置以及報警方式設置等方面的功能。
2.6 數據提取
將采集到的各種運維數據進行科學計算并加工,使其能夠統(tǒng)一納入數據庫中,進而實現運維數據提取作用,主要包括:數據校驗、運維數據過濾、運維數據運算等諸多相關功能。
2.7 ?運維數據管理
運維數據在經過嚴格的統(tǒng)計計算、資產計算、規(guī)則關聯分析計算后,能夠科學合理的對各種安全事件性質以及處理級別做出確定,并將其作為展示平臺系統(tǒng)中的基礎數據內容。
實現運維數據采集的有效管理,將采集數據按照操作系統(tǒng)、數據庫、業(yè)務應用系統(tǒng)分類后,作為運維管理人員排查問題或處理問題的資料依據。
3智能運維平臺的設計
3.1 ?技術架構設計
智能運維平臺UI開發(fā)采用JAVA,數據采集及輪詢采用 Python 語言,平臺數據庫采用MySQL8.0,系統(tǒng)架構采用微服務框架、深度學習框架、工作流引擎、爬蟲框架;應用架構采用TOMCAT、NGINX;非結構化數據保存采用 NAS(網絡存儲;配置文件格式采用YAML;監(jiān)控對象操作系統(tǒng)支持Linux和Windows;
3.2 ?性能設計
設計運維能力達到納管500臺主機,處理效率高,擴展性好。
3.3 ?標準化、規(guī)范化設計
標準化和規(guī)范化是智能運維平臺設計的基礎和關鍵點。確定運維標準基線,不標準的一概進行整改。設計基礎平臺運維與業(yè)務運維相結合,對運維進行專業(yè)細化,并制定相關標準。
3.4 功能設計
智能運維平臺由基礎運維平臺和業(yè)務運維平臺兩部分組成。其中,基礎運維平臺包括:系統(tǒng)監(jiān)控平臺、任務調度引擎兩部分;業(yè)務運維平臺包括:數據可視化展示、運維決策支持知識庫、運維趨勢分析、故障自愈機器人四個部分。
3.5 ?接口設計
設計一套標準接口,采用JAVA提供開放式Restful API 接口。
3.6 機器學習設計
機器學習的語言采用 Python、JAVA。學習算法采用線性回歸算法、決策樹算法和隨機森林算法。模型選擇與評估采用交叉驗證,框架采用 TensorFlow。
運維決策模型庫的一個模型,根據參數判斷,提供是否需要重啟服務器的決策,解決當下嚴重的運行故障。
服務器數據集,就是服務器運行數據的集合。其中每一條單獨的運行數據被稱為樣本。數據樣本在數據集中都是相對獨立的。每個樣本都有許多屬性或者特征,特征所具有的值就稱為特征值。
服務器特征一般包括如下特征:
服務器上線時間、服務器歷史故障率、服務器計算資源、服務器容量,硬件運行狀態(tài)、網絡性能、數據庫死鎖、操作系統(tǒng)出現僵死進程、應用服務異常、存儲多路徑鏈路異常、消息隊列異常等等;
對應特征值如下:
服務器服務年限超過5年;硬件故障,更換硬件要求服務器重啟;CPU、內存、交換區(qū)使用率過高;磁盤IO 嚴重下降;網絡頻繁出現丟包;數據庫死鎖無法自行清理;操作系統(tǒng)出現僵死進程;應用服務掛起;存儲多路徑鏈路數量缺少;服務器日志報錯;歷史故障率 0.1% ;消息隊列超過閾值等等;
接下來,為訓練模型制定參數通過任務調度引擎完成啟動訓練。
機器學習模型的訓練采用業(yè)務應用系統(tǒng)決策支持知識庫、半年運行數據以及半年業(yè)務狀態(tài)、處理過程和日志等業(yè)務數據。訓練集采用以具有明顯服務器特征及屬性的運維和業(yè)務應用系統(tǒng)相關歷史數據,選擇12個月數據訓練我們模型。訓練集盡量選擇合理的數據量保障模型的泛化能力。測試集也采用與服務器特征及屬性相關的6個月的歷史數據,不能包含在訓練集中,保障未知性。交叉驗證集也采用上訴歷史庫數據,時間長度選擇2個月。交叉驗證集是比較特殊的一部分數據,它是用來調整模型具體參數及優(yōu)化模型。
機器學習需要不斷訓練模型、評估模型,對于訓練結果表現好的模型,經過重新評估后可以將該訓練模型及參數值寫入智能運維平臺決策支持庫,使該模型在智能運維平臺中進行實踐,通過跟蹤模型的實踐成果,進一步評估模型的效果。對于訓練結果表現不好或成果不明顯的模型,立即結束訓練,并且調整模型參數值,繼續(xù)訓練。
根據對運維領域的深入理解,明確智能運維所需要解決的問題。提供運維領域的知識和經驗,對數據進行標注分類,作為機器學習必備的訓練數據。驗收智能運維輸出成果,將成果應用與實際環(huán)境結合。
3.7 任務調度引擎設計
設計任務調度引擎,實現自動化巡檢任務、應用自動部署任務、操作系統(tǒng)補丁升級任務、數據庫補丁升級任務、操作系統(tǒng)重啟任務、數據庫重啟任務、應用重啟任務等功能。
3.8 數據可視化設計
注重用戶體驗,對運維人員更加友好。
系統(tǒng)整體運行狀況通過運維大屏動態(tài)展示,設計數據地圖,提供數據下鉆三層設計,提供組合查詢服務,數據質量比對服務、多維數據庫查詢服務、數據生命周期管理服務、數據挖掘服務。
3.9 故障自愈設計
設計故障定義、故障發(fā)現及精準定位、故障分析、故障處理、故障跟蹤、事后總結等功能。
故障及風險點定義:定義故障識別特征及特征值、故障范圍。
故障發(fā)現及精準定位,通過基線預警、日志告警、不斷優(yōu)化故障定位算法,故障定位算法采用機器學習中的二叉決策樹。智能定位出故障點,盡可能減少人工參與,提高運維分析能力、故障自愈能力。
故障分析,提供故障診斷決策,收集系統(tǒng)運行服務狀態(tài),做出可以用于自愈的最優(yōu)決策。
故障處理,實現故障自愈執(zhí)行,有利于故障的快速恢復。當系統(tǒng)出現隱患的時候,運維工程師會收到相關的預警信息,運維中心的智能音箱會發(fā)出明確的告警。你通過智能音箱可以了解到系統(tǒng)故障的原因與處置建議,然后通過確認,就可以自動完成處置。
3.10 告警設計
集中告警、統(tǒng)一展現、關聯分析,告警提供原始發(fā)生時間、接收時間和響應時間多個維度的統(tǒng)計顯示。
3.11 運維決策知識庫設計
通過機器學習不斷優(yōu)化訓練的模型,并且將訓練模型實際應用到智能運維平臺中,經過實踐表現良好的模型算法,評估后寫入運維決策知識庫,重點記錄模型參數、特征值、分析過程、處理方法等步驟。
4 ?業(yè)務應用系統(tǒng)應用智能運維平臺的技術效果
4.1 ?提高業(yè)務應用系統(tǒng)的可用性
智能運維平臺采用監(jiān)控探針、系統(tǒng)輪詢、基礎運維數據分析、業(yè)務數據分析等各種監(jiān)控手段,有效的保障業(yè)務應用系統(tǒng)各種服務正常運行,提高系統(tǒng)的無故障運行時間,增強系統(tǒng)可用性。
4.2 ?改進業(yè)務應用系統(tǒng)的性能和系統(tǒng)健壯性
通過深度參與業(yè)務應用系統(tǒng)的設計與實施,參與主導系統(tǒng)架構的可用性設計,參與系統(tǒng)架構優(yōu)化,從而持續(xù)改進系統(tǒng)性能和系統(tǒng)健壯性。
4.3 ?降低業(yè)務應用系統(tǒng)的運維成本
面對傳統(tǒng)運維模式下,運維費用逐年升高的情況,智能運維平臺的應用能在業(yè)務應用系統(tǒng)的硬件資源、研發(fā)架構、資源結構、運維人員、故障自愈等方面,優(yōu)化降低系統(tǒng)運維成本。
4.4 ?提升業(yè)務應用系統(tǒng)的運行效率
通過人工智能、機器學習、故障診斷分析等自動化手段,提升業(yè)務應用系統(tǒng)在軟件生命周期中的運行效率,實現系統(tǒng)故障自愈。
智能運維平臺應用后,充分運用智能化手段,按照預先簡單設置的策略和規(guī)則,實現了業(yè)務應用系統(tǒng)基礎平臺的操作系統(tǒng)安裝部署、數據庫安裝部署、軟件安裝部署、應用部署、操作系統(tǒng)高危漏洞補丁升級、數據庫高危漏洞補丁升級等功能,大大減少了運維人員的人工參與,有效提升業(yè)務應用系統(tǒng)的響應時間及運行效率。
4.5 ?為業(yè)務應用系統(tǒng)提供決策支持
智能運維平臺利用大數據、人工智能、云計算等手段,通過數據可視化、報表統(tǒng)計、趨勢分析,為業(yè)務應用系統(tǒng)提供決策依據。
智能運維平臺通過與業(yè)務應用系統(tǒng)的數據交換,按照業(yè)務應用主題形成各類業(yè)務應用數據倉庫。
智能運維平臺通過匯聚業(yè)務應用各方面數據,為業(yè)務應用系統(tǒng)大數據建設提供數據匯聚、數據清洗、數據分類等技術支撐。
4.6 ?積累智能運維經驗
智能運維平臺的應用,在機器學習、故障自愈、決策支持、大數據、運維基礎平臺架構等方面都進行了科學的探索,為智能運維的應用實踐積累了大量寶貴經驗,形成的故障自愈模型、運維決策知識庫、可視化展示工具、告警策略、自動化運維工具,為其他系統(tǒng)的建設與運維提供了科學的借鑒和參考。
智能運維平臺的應用,實現了對業(yè)務應用系統(tǒng)基礎運維和業(yè)務運維的經驗積累,有效的掌控運維的主動性、全面性、可擴展性與可用性,使系統(tǒng)管理人員更多的關注系統(tǒng)運維分析及技術趨勢發(fā)展,為領導的決策提供了有力的支撐。
結語
綜上所述,通過智能運維平臺實現業(yè)務應用系統(tǒng)運維轉型的探索與實踐,一方面使業(yè)務應用系統(tǒng)的運維手段變得更加豐富,另一方面對人工智能(AI)、機器學習、大數據等信息化手段有了更加深入完善的應用和實踐,建立了適合業(yè)務應用系統(tǒng)運行的運維決策知識庫,并成功實現機器學習在業(yè)務應用系統(tǒng)中落地實踐。
智能運維平臺在業(yè)務應用系統(tǒng)的應用,將機器學習與運維難題相結合,實現智能運維成果落地,為實現業(yè)務應用系統(tǒng)的“自動駕駛”做出了大膽嘗試和探索。
參考文獻
[1]葉枝平,蘇立偉,楊秋勇等.基于大數據平臺的營銷監(jiān)控自動化運維探索研究[J].電子世界,2019,580(022):32-34.
作者簡介:
張兵(1969—),男,漢族,遼寧沈陽人,碩士,高級工程師,長期從事信息化工作
通訊作者:林華南(1984—),男,漢族,廣東吳川人,學士,工程師,從事信息化工作
E-mail:66790367@qq.com
劉軻 (1982—),男,漢族,廣東興寧人,學士,工程師,從事信息化工作
余靖(1985—),男,漢族,福建仙游人,學士,工程師,從事信息化工作