江 琳,王 煜,李仕旺,賈成強,潘 躍
(1.中國鐵道科學研究院集團有限公司 電子計算技術研究所,北京 100081;2.中鐵程科技有限公司,北京 100081)
鐵路12306 互聯(lián)網售票系統(tǒng)(簡稱:12306)涵蓋中國國家鐵路集團有限公司(簡稱:國鐵集團)、40 組互聯(lián)網節(jié)點中心、18 個地區(qū)中心、18 個客服中心和3000 多個客運車站,由于12306 的層級復雜、功能眾多,其運營維護(簡稱:運維)診斷需要耗費大量的人力和時間。為提高運維效率,亟需對運維知識進行提取和再利用。知識圖譜被廣泛地用于智能問答、智能推薦等領域,眾多學者對知識圖譜技術展開研究,并將其應用于系統(tǒng)的運維診斷與分析當中。郭盛等人[1]以電商銷售平臺為研究案例,提煉知識圖譜模型,構建知識庫,研究形成可視化的網絡結構;歐一鳴等人[2]基于運維訴求與分布式光伏運維知識圖譜中的信息,匹配準確的運維方案,為運維人員提供方案支持。
基于上述研究,本文引入知識圖譜技術對12306 運維知識進行建模,為具有復雜關系的知識信息提供高效存儲、組織、管理的手段。通過梳理運維技術經驗,使系統(tǒng)告警、故障案例、問題記錄、技術手冊、操作經驗等信息明晰化、規(guī)則化,從而構建12306 運維知識圖譜,快速、便捷、高效地完成運維診斷、自動處理和故障排除,最終實現(xiàn)12306 運維自動化、智能化。
知識圖譜以資源信息為數據源,自動抽取資源,持續(xù)優(yōu)化知識庫。完整的知識圖譜需要不間斷地迭代、更新知識經驗信息[3]。12306 的運維知識圖譜構建流程,可以分為數據獲取、知識抽取、知識融合和知識處置4 個部分,如圖1 所示。
圖1 12306 運維知識圖譜構建流程
12306 運維數據獲取包括整合結構化、半結構化、非結構化的數據。監(jiān)控數據、指標數據是結構化數據,可直接進行整合;12306 故障案例、問題記錄、技術手冊、專家分享帖子和用戶手冊等是半結構化數據;12306 系統(tǒng)配置、日志、規(guī)范化產品文檔等屬于非結構化數據。非結構化和半結構化數據需進行加工后才可使用。
半結構化和非結構化的數據需要完成實體抽取、屬性抽取和關系抽取形成知識,存入到知識圖譜中[4]。實體抽取包括抽取12306 系統(tǒng)日志、配置信息等元素;屬性抽取需要定義監(jiān)控元素各指標類的性質;關系抽取需要提取各個系統(tǒng)間的相互歸屬或擁有關系,為知識結構獲取網狀的關系定義。
知識抽取形成的知識需要進行運維數據整合和知識推理,從而消除知識間的歧義[5],其方法有2 種:(1)指代消解,即把代表同一實體的不同指稱劃分到一個等價集合,例如錯誤日志、系統(tǒng)配置都指向一個主機實體;(2)實體消歧,即把一個實體的具體屬性進行定位,例如,通過計算得出的系統(tǒng)指標是監(jiān)控報警還是系統(tǒng)故障。
對運維的新知識進行質量評估后,將其加入到12306 運維知識圖譜中,知識圖譜可通過客票知識檢索進行展示。
12306 智能運維架構分為傳輸層、加工層、存儲層、智能處置層,如圖2所示。
圖2 12306 智能運維架構
傳輸層通過消息隊列的方式獲取結構化、非結構化和半結構化數據,并進行統(tǒng)一分析和展示,包括對告警、指標、故障案例、問題記錄、技術手冊、專家分享帖子、用戶手冊、系統(tǒng)配置、日志、規(guī)范化產品文檔等進行數據接收和匯聚。
加工層把12306 的事件、運維日志、業(yè)務數據、系統(tǒng)指標、運維知識圖譜、專家經驗和知識等海量數據經識別、篩選,歸納抽取出來,不同數據類型有不同的抽取方法。結構化數據需要用復雜表數據處理獲取知識,其余的數據需進行持續(xù)的知識自動生成、更新和維護[6]。
在加工層獲取到12306 新的運維知識后,存儲層對其進行整合,消除知識間的矛盾和歧義,將其與其他知識進行融合、校對,轉換為三元組的形式,按中國鐵路客票發(fā)售預定系統(tǒng)(簡稱:客票系統(tǒng))的業(yè)務表結構和圖結構的方式進行存儲,形成標準的數據格式,為上游12306 網站、12306 App 及其他軟件應用提供服務。
通過存儲層的知識融合,結合事件分析、事件模板、知識庫和語義編碼對運維知識進行驗證、修正和優(yōu)化,構建12306 運維知識圖譜,通過系統(tǒng)收集和提取的故障數據、報警門限、系統(tǒng)閾值等實現(xiàn)故障識別和根因定位,最終實現(xiàn)故障自動處置。
12306 運維知識圖譜擁有上萬條運維知識,每條知識由三元關系(主體、謂語、賓語)組成[7]。12306 通過資源描述框架(RDF,Resource Description Framework)來描述實體和資源三元關系,完成運維知識圖譜構建。
先把問題描述、異常事件、故障案例、配置管理等數據分類,基于RDF 三元組的知識表示和本體描述,使用數組存儲每個運維事件的語義信息,抽取語義信息及運維事件關系[8]。RDF 標準數據模型有唯一確定的主體、連接屬性的謂語和明確屬性值的賓語。主體是被描述的資源,謂語可表示主體的屬性,也可表示主體和賓語間的關系。當表示屬性時,賓語就是屬性值;當表示關系時,賓語也可作為資源。本文結合問題事件、故障處置、業(yè)務報警、物理設備信息和專家邏輯信息等,構建了以12306 業(yè)務為核心的運維識圖譜,部分圖譜可視化的內容如圖3所示。
圖3 12306 運維知識圖譜示意(部分)
12306 發(fā)生異常事件時,須獲取相關的系統(tǒng)日志、業(yè)務報警、應用變更、配置管理等信息,將異常數據寫入圖數據庫,根據12306 運維知識圖譜使用的演繹推理和歸納推理方法,對事件根因進行定位。
12306 異常事件包括售票交易量、業(yè)務時延、支付成功率、連接異常率等指標的異常,以及業(yè)務日志和系統(tǒng)日志的異常。經過異常信息收集,對系統(tǒng)業(yè)務進行統(tǒng)計分析,定位到具體子系統(tǒng)的軟硬件,獲取事件根因。以售票業(yè)務為例,12306 支持中國工商銀行(簡稱:工行)、中國農業(yè)銀行、中國銀行和招商銀行等網上銀行功能,當支付成功率下降時,多筆交易產生了支付錯誤日志,系統(tǒng)提取異常時間點的交易信息,找到某時間范圍內的異常交易。通過對異常交易的統(tǒng)計分析,定位到交易僅在工行支付平臺子系統(tǒng)報錯,說明工行接口子系統(tǒng)就是問題的根因。
將12306 各業(yè)務系統(tǒng)采集的大量監(jiān)控數據與歷史運維數據匯聚,進行分類學習,通過告警分類、性能趨勢預測和參數訓練,生成運維數據的閾值和權重,用以區(qū)分數據中的正常值和異常值,把檢測參數調整到合理的范圍,對異常事件進行報警。
異常檢測包括監(jiān)控指標檢測、動態(tài)閾值檢測和智能基線檢測。監(jiān)控指標檢測是在服務器端設定,當應用指標超過某閾值時自動報警,并對服務異常的波動狀態(tài)進行報警;動態(tài)閾值檢測采用實時調整的閾值設定法來解決大小長假、春運售票高峰等周期性數據的異常判斷,自動發(fā)現(xiàn)異常節(jié)點,實時標紅節(jié)點,同步顯示異常詳細信息,方便運維人員快速發(fā)現(xiàn)和定位問題;智能基線檢測無須逐個配置報警規(guī)則,可動態(tài)調整靈敏度,任何一個接入智能基線的指標,都需要計算出它的預測基線及合理邊界,當實際數據超出邊界并達到一定時長后觸發(fā)報警。
智能決策將12306 運維知識圖譜中的運維處置命令匯總成特定腳本,包括內存報警、文件空間不足、數據庫死鎖等的解決方法和方案。系統(tǒng)工作流通過定時或輪詢任務,自動對上千個業(yè)務項進行檢查,當發(fā)生故障或異常檢測報警時,第一時間觸發(fā)集成化命令,完成自動故障修復。
通過12306 運維知識圖譜產生的智能決策方案,可自動執(zhí)行多個故障修復任務,對報警的根本原因進行故障排查和處置,減少網絡資源的停機時間,確??焖俳鉀Q多個故障。例如,重新啟動主機服務器、關閉系統(tǒng)服務、發(fā)送故障通知到機器人、執(zhí)行腳本以更正系統(tǒng)故障等,都可使用智能決策的修復任務和解決方案。
本文通過數據獲取、知識抽取、知識融合、知識處置構建12306 運維知識圖譜,對根因定位、異常檢測、智能決策等關鍵技術在12306 智能運維領域進行了應用研究,使12306 運維更加實時、高效、自動化、智能化,根據12306 運維知識圖譜計算出的故障預警準確率可達85%以上,有效降低了12306 和各應用子系統(tǒng)的故障率,提高了問題處理效率,切實為12306 起到了保駕護航的作用。