楊 娜,張多才,雷向煜,趙廣杰
(西安航天天繪數(shù)據(jù)技術有限公司,陜西 西安 710003)
中國數(shù)字化進程按下加速鍵,中央明確提出要加快5G 基建、特高壓、城際高速鐵路和城際軌道交通、大數(shù)據(jù)中心、人工智能、工業(yè)互聯(lián)網和新能源汽車充電樁等“七大領域”新型基礎設施建設進度[1],數(shù)據(jù)中心也在加快建設的行列,這是近年來國家第一次將數(shù)據(jù)中心的建設列入加快建設的條目。
近年來,在線服務需求激增,數(shù)據(jù)成為關鍵資源,而數(shù)據(jù)中心信息基礎設施承擔著數(shù)據(jù)收集、計算、轉化、流通的重要職責。隨著“新基建”的加速推進,網絡基礎設施及網絡服務需求大幅增加,數(shù)據(jù)中心作為底層基礎設施將持續(xù)增長,數(shù)據(jù)中心建設及擴容的步伐也會相應加快[2]。大規(guī)模數(shù)據(jù)中心建設勢必需要加速發(fā)展數(shù)據(jù)中心運維。
隨著大數(shù)據(jù)、云計算以及分布式架構的不斷成熟,使得通過大數(shù)據(jù)和機器學習的智能運維分析幫助運維人員定位問題變成了可能。智能運維通過機器學習等人工智能算法進行“自主式”學習分析總結,持續(xù)為大規(guī)模、高復雜性的系統(tǒng)提供運維服務。
隨著數(shù)據(jù)中心規(guī)模的不斷擴張、設備數(shù)量和種類的增長,綜合數(shù)據(jù)中心運維呈現(xiàn)運維人員不足、運維自動化水平低、基礎設備無統(tǒng)一管理、運維平臺支撐力不夠和配置管理不足等局面,具體的運維現(xiàn)狀總結為如下4 點。
第一,人少、事多、責任大。運維團隊人員過去運維管理十到十幾臺設備,發(fā)展到目前運維設備數(shù)量十倍至百倍地增長,一旦遇上機房搬遷、災備建設等重大運維工作事項勢必消耗大量的人力物力,日常事務運維自動化水平不高,運維人工流程管理易造成運維人員嚴重不足。
第二,運維對象、數(shù)據(jù)激增。對于運維對象,即服務器、存儲、網絡、數(shù)據(jù)庫、中間件、應用、業(yè)務系統(tǒng)及基礎設施等[3],不僅范圍比較廣,而且運維的數(shù)據(jù)多樣化。針對系統(tǒng)運維數(shù)據(jù)進行整理,將其歸類成7 類數(shù)據(jù),包括日志、指標、告警、熱點、預警、問題單、事件單[4],對運維數(shù)據(jù)進行采集、錄入和整合。
第三,運維場景多樣化。運維過程是故障發(fā)現(xiàn)、故障解決、提高運維質量的過程[5]。由于IT 業(yè)務不斷地增加,為了保證各業(yè)務之間的連續(xù)性,不同業(yè)務之間產生多樣化的運維場景,依靠單一解決方案無法滿足業(yè)務連續(xù)性的需求,導致場景無法持續(xù),無法基于現(xiàn)有IT 業(yè)務實現(xiàn)全面的覆蓋。
第四,缺少基于海量數(shù)據(jù)的故障預測。數(shù)據(jù)中心運維過程中產生的海量數(shù)據(jù),不能夠通過自主學習的方式來發(fā)現(xiàn)并建立海量數(shù)據(jù)之間的關聯(lián)關系,需要通過機器學習的方法基于海量數(shù)據(jù)進行故障預測。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺以配置管理為核心,以ITIL/ITSM 流程為基礎,搭建運維監(jiān)控、智能運維、工單管理等多項應用產品,實現(xiàn)集監(jiān)控、告警、智能運維為一體的運維平臺,基于機器學習的智能運維大腦,指揮監(jiān)控服務監(jiān)控采集各類運維數(shù)據(jù),訓練樣本,做出分析并指揮決策。最終實現(xiàn)運維工作從依靠人工決策,到依靠機器決策的轉變。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺提供智能運維手段,主要負責監(jiān)控數(shù)據(jù)中心軟硬件運行狀態(tài),包括基礎設施、業(yè)務系統(tǒng)的數(shù)據(jù)運行狀態(tài)、服務內容等數(shù)據(jù)和服務運維態(tài)勢,提供集中的運維態(tài)勢信息展示,管理資源、人員、配置、流程,監(jiān)視故障并告警,協(xié)助快速定位故障原因,為整個系統(tǒng)的平穩(wěn)運行提供保障。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺通過監(jiān)控服務采集日志、監(jiān)控信息、流量和應用等運維數(shù)據(jù),采用先進機器學習的方法結合已有運維數(shù)據(jù)作為訓練樣本來滿足運維自動化、智能化的需求。以業(yè)務應用為牽引,實現(xiàn)多維度數(shù)據(jù)采集和性能監(jiān)控、故障監(jiān)控以及全生命周期配置管理的流程,充分利用可視化技術呈現(xiàn)全景運維。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺技術架構由下至上分為基礎層、數(shù)據(jù)資源層、數(shù)據(jù)采集層、數(shù)據(jù)處理層、服務層和應用層等6 層。基礎層主要提供基礎運行環(huán)境;數(shù)據(jù)資源層主要是網絡、服務器、中間件和數(shù)據(jù)庫等運維對象;數(shù)據(jù)采集層主要是采集的數(shù)據(jù)類型及數(shù)據(jù)技術;數(shù)據(jù)處理層主要是大數(shù)據(jù)處理和算法處理;服務層主要提供各類功能服務;應用層主要提供定制態(tài)勢大屏和智能工作臺。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺詳細技術架構如圖1 所示。
圖1 技術架構
基礎層:為綜合數(shù)據(jù)中心智能運維監(jiān)控平臺提供合乎運行的基礎環(huán)境,包括云系統(tǒng)、操作系統(tǒng)、Docker運行容器等。
資源層:主要是綜合數(shù)據(jù)中心智能運維監(jiān)控平臺運維對象即監(jiān)控的資源,包括網絡設備、云/物理服務器、存儲設備、數(shù)據(jù)庫/中間件、應用系統(tǒng)等。
采集層:可以從數(shù)據(jù)采集技術、數(shù)據(jù)類型和業(yè)務來源3 個緯度進行劃分。數(shù)據(jù)采集技術包括MIB 采集、SNMP 采集、爬蟲采集、API 采集和第三方集成等技術。按業(yè)務來源可劃分為基礎設施、云平臺資源、大數(shù)據(jù)平臺、數(shù)據(jù)和服務以及機房配套運維態(tài)勢信息。按數(shù)據(jù)類型可劃分為事件數(shù)據(jù)、告警數(shù)據(jù)、業(yè)務數(shù)據(jù)、日志數(shù)據(jù)、性能數(shù)據(jù)和配置數(shù)據(jù)等。采集層所有數(shù)據(jù)匯聚成運維大數(shù)據(jù)。
處理層:主要是對采集的各類運維數(shù)據(jù)進行集中處理,包括數(shù)據(jù)庫大數(shù)據(jù)處理、流式處理、檢索引擎以及機器學習中日志異常檢測和卷積神經網絡等算法。
服務層:主要包括監(jiān)控服務、智能運維、日志服務、配置管理庫、運維知識庫、運維態(tài)勢大屏和系統(tǒng)管理。
展示層:主要包括運維態(tài)勢大屏界面。運維態(tài)勢大屏提供開放式的大屏展示功能,將各軟硬件系統(tǒng)的運行態(tài)勢集中展現(xiàn)在統(tǒng)一界面上,通過大屏展現(xiàn)形式實時呈現(xiàn)機房3D 全景和拓撲全景等。用戶可根據(jù)業(yè)務需要通過“拖拉拽”方式自定義個性化視圖展示,支持多種主題自由切換。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺根據(jù)業(yè)務劃分為7 部分,具體如下。
監(jiān)控服務:主要采集基礎設施、云平臺資源、大數(shù)據(jù)平臺、機房配套以及應用系統(tǒng)的運維狀態(tài)信息,并依據(jù)運行狀態(tài)數(shù)據(jù)實時告警。
日志服務:能夠支持多源日志數(shù)據(jù)采集、存儲、檢索及關聯(lián)融合,日志異常檢測,支撐通過檢索日志快速定位故障。
配置管理庫:主要負責全系統(tǒng)的軟硬件資源、動環(huán)資源,工單流轉、各類指標以及自定義配置等。它是所有應用運行和應用交付的數(shù)據(jù)資源基礎,基于配置管理,可以實現(xiàn)采集資源信息自動化、軟件安裝自動化、應用部署自動化,告警信息依托設備資源配置信息提升準確性,提供設備與應用關系圖信息,輔助故障影響范圍的判斷。
智能運維:主要實現(xiàn)數(shù)據(jù)中心機房的遠程運維管理,智能監(jiān)控服務器、安全設備、云設備、存儲設備、應用系統(tǒng)和動環(huán)系統(tǒng),對服務器設備進行安裝操作系統(tǒng)、補丁升級和自動巡檢,并依據(jù)異常檢測算法進行故障異常檢測,并發(fā)出故障告警。
運維知識庫:收集運維過程中的經驗形成知識,為全系統(tǒng)運維工作提供經驗與知識積累,為故障處理提供相應經驗或知識推薦。
運維態(tài)勢大屏:從全局拓撲、重要資源狀態(tài)、系統(tǒng)異常情況等多個維度,以統(tǒng)計圖、邏輯關系等視角對監(jiān)控對象的運維態(tài)勢進行集中信息展示。
智能工作臺:主要實現(xiàn)服務登記、服務查詢、待回訪工單、故障管理等功能,從而幫助運維人員及時準確地掌握各類事件告警。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺主要遵循ITIL 流程架構,結合綜合數(shù)據(jù)中心運維管理特點,建立統(tǒng)一的運維門戶報障平臺,實現(xiàn)自助式、一站式服務[6]。提供智能運維的手段,集中的運維態(tài)勢信息展示,管理資源、人員、配置、流程,監(jiān)視故障并告警,協(xié)助快速定位故障原因,為整個系統(tǒng)的平穩(wěn)運行提供保障。
監(jiān)控服務主要面向綜合數(shù)據(jù)中心跨平臺、跨廠商基礎設施,涵蓋主流服務器、網絡設備、存儲設備、中間件、數(shù)據(jù)庫、容器、大數(shù)據(jù)平臺,以及采集綜合數(shù)據(jù)中心應用服務的運行狀態(tài)信息,提供7×24 h 持續(xù)性能監(jiān)控,對接收的各類監(jiān)控狀態(tài)數(shù)據(jù)進行標準化處理和異常檢測分析,并依據(jù)運行狀態(tài)數(shù)據(jù)實時告警。系統(tǒng)支持多種告警方式,郵件、短信和語音告警。
系統(tǒng)在運行中產生了系統(tǒng)日志、應用日志、網絡日志、設備日志等海量日志,針對不同來源、不同模式的日志,傳統(tǒng)方式是通過關鍵字和解析規(guī)則解析存在不足,故采用日志智能異常檢測方法進行處理。異常檢測技術主要包括如下步驟:日志采集、日志解析、特征抽取、異常檢測[7]。
日志采集包括文本方式、SNMP 的TRAP 方式、Syslog 方式以及Telnet 遠程控制命令方式[8],采集的對象包括服務器、網絡設備、存儲設備、中間件、數(shù)據(jù)庫、安全設備、應用系統(tǒng)等,其中,應用系統(tǒng)日志通過kafka 方式進行實時收集,實時數(shù)據(jù)流被策略地過濾與歸并,提升日志分析的效率。
日志解析通過自然語言處理技術NLP 從一條日志中提取若干詞元來支撐索引的存儲和檢索,文本日志與一般的自然語言不同,它含有大量的關鍵詞,這些關鍵詞與系統(tǒng)息息相關。例如,IP 地址、文件路徑、內存地址、時間信息、故障提示等。
特征抽取主要是通過自然語言處理NLP 技術,分析海量日志中的共性和常見模板,采用FT-tree 方法提取變量和模板,將一系列非結構化日志轉換為結構化日志[9]。
異常檢測主要基于日志模板和變量提取后,采用KPI 異常檢測算法進行日志異常檢測。
配置管理庫負責管理全系統(tǒng)硬件設備資源、應用資源、人力資源、動力環(huán)境資源配置項,跟蹤設備資源變更管理,基于流程引擎實現(xiàn)工單流轉,提供運維監(jiān)控指標管理功能。提供基礎數(shù)據(jù)支撐,支持動態(tài)構建自定義關聯(lián)模型,管理所有設備資源的相關配置數(shù)據(jù),如采集指標、告警指標、硬件設備配置信息等。
智能運維實現(xiàn)數(shù)據(jù)中心機房的遠程無人值守智能運維,對計算機、網絡設備、服務器、交換機、路由、視頻監(jiān)控設備、安全設備、云設備、業(yè)務系統(tǒng)、動環(huán)系統(tǒng)等實現(xiàn)遠程監(jiān)控管理。支持SNMP、telnet、SSH、JDBC 等多協(xié)議多線程設備信息采集。智能運維匯聚數(shù)據(jù)中心海量的性能、告警、配置、服務單和知識庫等數(shù)據(jù),構建智能運維體系的基礎數(shù)據(jù)倉庫,然后將海量的監(jiān)控數(shù)據(jù)作為訓練數(shù)據(jù)的基礎進行機器學習和建模,實現(xiàn)智能化的異常識別、故障預測;結合大數(shù)據(jù)分析算法對比相關指標、告警及數(shù)據(jù)集,協(xié)助故障快速定位。
智能故障預測依托大數(shù)據(jù)分析和機器學習能力,結合歷史告警數(shù)據(jù),結合深度學習模型,分析故障的根源、關聯(lián)關系以及影響范圍[10]。智能化運維的核心是通過機器學習的聚類算法將屬于同一類別的事件進行歸類;然后通過相關性分析,來分析該事件為異常事件的可能性;通過異常指標和指標貢獻度的分析,找到故障中的具體根源指標[11]。得出故障間的相關性,結合實時監(jiān)控數(shù)據(jù)進行IT 故障趨勢分析和預測,在故障發(fā)生之前通過預測做出判斷、預警,實現(xiàn)故障的智能預測。
通過積累大量故障處理和巡檢運維經驗組成智能化運維分析的知識庫,把數(shù)據(jù)變成有價值的信息[12]。減少對人的依賴,實現(xiàn)機器的自判、自斷和自決。
運維知識庫主要收集運維過程中的經驗與知識,并進行統(tǒng)一存儲和分類檢索,為系統(tǒng)運維提供經驗和知識積累,為技術保障人員提供運維經驗與知識共享的平臺。
運維知識庫主要包括知識錄入、知識檢索和智能問答功能。
知識錄入主要實現(xiàn)了人工界面填寫知識標題、知識類型、關鍵知識、知識內容和附件等信息和將告警故障處理經驗一鍵導入知識庫。
知識檢索采用ElasticSearch 全文搜索引擎實現(xiàn)感興趣知識的快速檢索,通過大數(shù)據(jù)分析對用戶和檢索的內容進行分析處理,并按照相關性、熱度以及最新知識來進行排序,為用戶找出更加準確的信息,提供更有深度的相關信息。
知識問答實現(xiàn)基于深度學習的方法對傳統(tǒng)問答方法進行改進。知識問答使用自然語言問題作為輸入,采用深度學習的Multi-Column 卷積神經網絡分別對問題和答案進行向量化。
運維態(tài)勢大屏實現(xiàn)開放式大屏展示,將綜合中心內外部業(yè)務系統(tǒng)及數(shù)據(jù)運行態(tài)勢集中展現(xiàn),實時呈現(xiàn)機房運維、基礎資源、數(shù)據(jù)及服務等運行態(tài)勢,從全局拓撲、重要資源狀態(tài)、異常情況等多維度進行3D 全景、機架圖、設備面板的集中展示,可結合實際運維案例制作不同的運維場景模板,通過“拖拉拽”方式自定義個性化視圖展示。
通過全景展示能夠從宏觀層面了解系統(tǒng)運行狀態(tài)、資源統(tǒng)計、用戶使用統(tǒng)計、異常情況和趨勢圖。
基礎設施態(tài)勢:包括服務器的使用情況、性能和運行狀況,云管理平臺的監(jiān)控數(shù)據(jù)等信息,硬件CPU、內存、存儲容量等指標健康度,并可支持用戶按需定制態(tài)勢分析內容,網絡、機房環(huán)境、硬件設備、中間件、數(shù)據(jù)庫、操作系統(tǒng)等提供基礎設施軟硬件運行狀態(tài)、績效統(tǒng)計展現(xiàn)。
機房運維態(tài)勢:包括動力環(huán)境運行狀態(tài),三維機房、機柜、機架、設備的展現(xiàn),硬件設備告警展現(xiàn)。以3D 全景呈現(xiàn)機房環(huán)境,并開放接口與應用系統(tǒng)進行數(shù)據(jù)對接,將虛擬場景和真實數(shù)據(jù)相結合,可快速、靈活地實現(xiàn)動環(huán)監(jiān)測、資產管理、記錄查詢、統(tǒng)計分析、故障告警等功能的直觀展示[13]。
數(shù)據(jù)及服務運行態(tài)勢:包括引接的各類數(shù)據(jù)以及發(fā)布的服務種類、總量、狀態(tài),數(shù)據(jù)存儲的總量,已發(fā)布的數(shù)據(jù)訪問接口的統(tǒng)計,日、周數(shù)據(jù)訪問TOPN,并可支持用戶按需定制態(tài)勢分析內容,提供數(shù)據(jù)及服務狀態(tài)、績效統(tǒng)計展現(xiàn)。
工作臺是技術保障人員發(fā)起、管理相關運維作業(yè)工單的入口。包括服務登記、服務查詢、待回訪工單、故障管理等功能,通過服務登記集中收集用戶的服務申報,查看系統(tǒng)故障,從而幫助運維人員及時準確地掌握各類事件告警,實時跟蹤服務請求、事件、問題、發(fā)布、變更及人物等工單的執(zhí)行情況。
服務登記:針對用戶發(fā)出的服務請求、事件、問題、發(fā)布、變更以及人物等工單流程進行登記,后臺自動識別申報內容進行歸類申報。
服務查詢:用戶可以對發(fā)出的服務請求、故障申報等服務進行查詢和跟蹤,同時對已經處理完成的工單執(zhí)行導出。
待回訪工單:服務臺人員對用戶申報的并且已經響應處理完成的工單進行回訪,掌握整個運維過程中用戶對運維服務的滿意度情況,并對運維服務持續(xù)改進。
由于綜合數(shù)據(jù)中心日志格式千差萬別,傳統(tǒng)日志處理方法無法滿足智能異常檢測的需求,引入機器學習的方法并通過調研日志識別算法,結合綜合數(shù)據(jù)中心智能運維監(jiān)控的實際應用場景,選擇FT-Tree 進行日志模板提取和異常檢測,并結合KPI 異常檢測算法達到日志智能異常檢測的目的。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺日志異常檢測流程如圖2 所示。
圖2 日志異常檢測流程圖
日志分詞主要針對文本進行分詞和變量提取;模板提取主要通過分析海量日志中的共性和常見模式,采用FT-Tree 算法提取日志模板;模型修正/統(tǒng)計在具備日志模板之后,將不同的日志轉為模板序列,統(tǒng)計其頻率、變量分布識別,形成統(tǒng)計信息;結合KPI 異常檢測算法進行單指標異常檢測發(fā)現(xiàn)問題,多指標聚類分析定位問題,通過日志分析檢測具體分析問題。
在運維過程中遇到的問題,針對知識庫無法提供的知識,綜合數(shù)據(jù)中心智能運維平臺支持知識問答的功能。知識問答將自然語言問題作為輸入,采用深度學習的Multi-Column 卷積神經網絡進行問題特征提取,對問題進行向量化處理形成問題的詞向量表達,然后對n個單詞的問題q進行卷積操作,并對卷積的結果進行池化操作,就得到了f(q1)、f(q2)和f(q3)。然后答案的3 種特征也分別用3 個向量來表示,其中答案路徑(Answer Path)的分布式表達為:
答案上下文信息(Answer Context)的分布式表達為:
答案類型(Answer Type)的分布式表達為:
每一個答案特征向量,采用一個卷積神經網絡對問題進行特征提取,然后將提出的問題的分布式表達和該答案對應特征向量的分布式表達進行點乘,得出得分函數(shù)。q為問題,a為答案,fi(q)為問題經過卷積神經網絡輸出的分布式表達,gi(q)為答案在對應特征下的分布式表達。
式(1)中:S(q,a)為答案最終得分;f1(q)Tg1(a)為答案路徑(Answer Path),f2(q)Tg2(a)為答案上下文信息(Answer Context),f3(q)Tg3(a)為答案類型(Answer Type)。
有了得分函數(shù),就可以對模型參數(shù)進行訓練,依據(jù)訓練結果排序返回結果。
智能化運維的核心是通過機器學習的聚類算法將屬于同一類別的事件進行歸類;然后通過相關性分析,來分析該事件為異常事件的可能性;通過異常指標和指標貢獻度的分析,找到故障中的具體根源指標;指標預測也是異常檢測的一種手段,如發(fā)現(xiàn)檢測的指標值相離預測值較遠且滿足判斷條件,則認為是異常。智能化運維的通用算法總結如下。
事件異常檢測算法有預測模型、近似性模型、隱式馬爾可夫模型以及3-sigma 原則。事件趨勢預測算法有整合移動平均自回歸模型、指數(shù)加權移動平均法、時序數(shù)據(jù)分解以及循環(huán)神經網絡等算法[14]。事件相關性算法包括動態(tài)時間歸整算法、Mann-Kendall 最佳配對等算法。事件聚類算法包括具有噪聲的基于密度的聚類方法、K均值聚類算法、k中心點聚類算法以及基于隨機選擇的聚類算法等。服務-事件貢獻度算法包括Pearson 關聯(lián)分析法、Two-sample Test 算法等。故障傳播鏈算法包括有隨機森林算法、Apriori 算法、FP-Growth 算法等。
綜合數(shù)據(jù)中心智能運維監(jiān)控平臺已經初步在內網實施測試,結合機器學習和人工智能實現(xiàn)了綜合數(shù)據(jù)中心的智能運管,監(jiān)控系統(tǒng)內外各類軟硬件系統(tǒng)運行狀態(tài),實時掌握數(shù)據(jù)實時動態(tài),實現(xiàn)綜合數(shù)據(jù)統(tǒng)籌監(jiān)管和對綜合數(shù)據(jù)整體運行管理,是綜合數(shù)據(jù)體系管理和統(tǒng)籌運維的承載。
智能運維機會和挑戰(zhàn)并存。人工智能在運維領域發(fā)展迅速,從基于規(guī)則的自動化運維轉向基于機器學習的智能運維已是大勢所趨,相關人員不斷思考、不斷學習,結合智能運維場景不斷挖掘出新的運維模型和機器學習算法,讓運維更加智能化。