柯 文,李攀科
(中國鐵路武漢局集團有限公司 信息技術(shù)所,武漢 430071)
近年來,鐵路信息化建設(shè)快速發(fā)展,信息系統(tǒng)已全面應(yīng)用到鐵路企業(yè)運輸生產(chǎn)和經(jīng)營管理等領(lǐng)域,鐵路各部門的日常辦公管理和業(yè)務(wù)管理越來越依托于信息系統(tǒng)的穩(wěn)定運行。同時,信息系統(tǒng)數(shù)量迅速增加,設(shè)備種類和技術(shù)日益多樣化,這對運維人員提出了更高的技術(shù)要求,使得運維工作難度加大。
針對這種情況,部分鐵路局集團公司構(gòu)建了側(cè)重于網(wǎng)絡(luò)設(shè)備、小型機和應(yīng)用監(jiān)控的自動監(jiān)控平臺,實現(xiàn)了系統(tǒng)監(jiān)控和故障報警。但平臺功能單一,缺乏自動化[1-2]、智能化[3]運維手段,運維效率低,無法滿足大規(guī)模機房集中運維管理的需要,無法適應(yīng)在虛擬化、云計算、大數(shù)據(jù)等新技術(shù)應(yīng)用下,運維模式由系統(tǒng)運維向平臺運維[4-5]的轉(zhuǎn)變,達(dá)不到主動監(jiān)控、集中管理、自動化運維的一體化運維目標(biāo)[6]。因此,鑒于信息系統(tǒng)在鐵路運營中的重要地位,以及企業(yè)精細(xì)化管理的要求,本文設(shè)計并實現(xiàn)了一套符合鐵路信息化運維管理要求、適應(yīng)新技術(shù)發(fā)展趨勢、提升管理效率、規(guī)范管理流程的信息化綜合運維管理系統(tǒng)。
基于鐵路局集團公司信息所運維管理辦法,結(jié)合實際運維需求,分析信息化運維業(yè)務(wù)流程,主要包括:設(shè)備臺賬管理、系統(tǒng)日常維護、系統(tǒng)監(jiān)控及故障處理、系統(tǒng)升級、資源優(yōu)化等。構(gòu)建信息化綜合運維管理系統(tǒng),需涵蓋上述業(yè)務(wù)流程,實現(xiàn)以下目標(biāo)。
(1)構(gòu)建集資產(chǎn)配置管理、設(shè)備運行監(jiān)控、自動化運維、流程審批管理和智能決策分析于一體的綜合運維管理系統(tǒng),為運維人員提供統(tǒng)一的工作平臺。
(2)建立信息化資產(chǎn)、資源管理臺賬,與現(xiàn)有的固定資產(chǎn)管理系統(tǒng)進行互聯(lián)互通,對設(shè)備狀態(tài)進行跟蹤,從而實現(xiàn)規(guī)范的資產(chǎn)入庫、使用、維護、報廢的全生命周期管理流程。
(3)將機房現(xiàn)有的軟硬件系統(tǒng)納入到統(tǒng)一的監(jiān)控界面中,采集關(guān)鍵指標(biāo)數(shù)據(jù),收集日志信息,判斷系統(tǒng)異常及設(shè)備故障,產(chǎn)生實時報警,方便運維人員及值班人員及時處理。
(4)統(tǒng)一管理自動化運維操作腳本,建立設(shè)備運行監(jiān)控與自動化運維操作聯(lián)動機制,實現(xiàn)故障自動恢復(fù),降低設(shè)備故障處理延遲時間,提高運維效率和準(zhǔn)確性,減少工作中的誤操作。
(5)從多角度統(tǒng)計和分析系統(tǒng)資源的使用情況,有助于管理部門掌握全面信息,輔助系統(tǒng)管理員進行資源優(yōu)化配置,提高信息資源整體利用率。
系統(tǒng)采用B/S架構(gòu),用戶界面通過瀏覽器展現(xiàn),系統(tǒng)提供統(tǒng)一界面,方便用戶操作。系統(tǒng)的安裝、修改、維護全部在服務(wù)器端完成。服務(wù)器端采用分布式架構(gòu),多個節(jié)點共同提供設(shè)備運行監(jiān)控、自動化運維、智能決策分析等服務(wù),能有效避免單點故障。
信息化綜合運維管理系統(tǒng)采用J2EE開發(fā)框架,基于Java語言開發(fā),采用PostgreSQL數(shù)據(jù)庫,該數(shù)據(jù)庫支持無鎖表修改,與傳統(tǒng)關(guān)系型數(shù)據(jù)庫相比,提供了更大的數(shù)據(jù)存儲靈活性。系統(tǒng)在技術(shù)架構(gòu)上劃分為展現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)訪問層和數(shù)據(jù)層,如圖1所示。
1.3.1 展現(xiàn)層
展現(xiàn)層是系統(tǒng)和用戶的交互層,用于展示系統(tǒng)功能,接受用戶數(shù)據(jù)錄入、導(dǎo)出和查詢等操作,對錄入數(shù)據(jù)進行基本校驗,用儀表盤、折線圖和圖表等方式進行數(shù)據(jù)展示,實現(xiàn)數(shù)據(jù)可視化。
1.3.2 業(yè)務(wù)層
業(yè)務(wù)層包括邏輯層和組件層。
(1)邏輯層是系統(tǒng)架構(gòu)設(shè)計的核心,負(fù)責(zé)數(shù)據(jù)的加工和處理,利用CMDB、MON、AMS、Workflow、Data Mining等模塊,實現(xiàn)資產(chǎn)配置管理、設(shè)備運行監(jiān)控、自動化運維、流程審批管理、智能決策分析等業(yè)務(wù)流程。既要滿足各模塊功能需求,又要實現(xiàn)各模塊間的聯(lián)動。
(2)組件層為邏輯層的各項功能提供具體服務(wù)。本文使用開源組件,方便系統(tǒng)快速開發(fā),主要組件包括:數(shù)據(jù)采集組件falcon-agent、報警判定組件falcon-judge、數(shù)據(jù)存儲查詢組件falcon-graph、工作流引擎組件activiti,消息中間件Kafka等。系統(tǒng)將組件部署到若干節(jié)點上,實現(xiàn)分布式系統(tǒng)。
1.3.3 數(shù)據(jù)訪問層
數(shù)據(jù)訪問層包括數(shù)據(jù)訪問接口(DAO),實現(xiàn)對關(guān)系型數(shù)據(jù)庫PostgreSQL和分布式數(shù)據(jù)庫HBase的訪問,對分布式文件系統(tǒng)HDFS的流式訪問,對被監(jiān)控設(shè)備的SSH、IPMI、SNMP、HTTP等的協(xié)議訪問,以及對外部信息系統(tǒng)的數(shù)據(jù)接口訪問。
1.3.4 數(shù)據(jù)層
數(shù)據(jù)層用于存儲業(yè)務(wù)數(shù)據(jù),將資產(chǎn)及監(jiān)控信息存放在關(guān)系型數(shù)據(jù)庫PostgreSQL,將監(jiān)控和日志分析計算結(jié)果存放在分布式數(shù)據(jù)庫HBase中,將采集的原始日志和實時監(jiān)控數(shù)據(jù)存放在分布式文件系統(tǒng)HDFS中。
圖1 系統(tǒng)技術(shù)架構(gòu)圖
本文基于系統(tǒng)目標(biāo),規(guī)劃并設(shè)計了信息化綜合運維管理系統(tǒng)的具體功能,如圖2所示。
系統(tǒng)通過該模塊建立動態(tài)的資產(chǎn)配置庫[7]以及合理的信息化資產(chǎn)和資源模型。該模塊支持資源配置項的靈活添加和刪除,滿足多種統(tǒng)計分析需求,構(gòu)建資產(chǎn)與資產(chǎn)間的關(guān)系管理機制,相關(guān)聯(lián)資產(chǎn)自動掃描發(fā)現(xiàn),實現(xiàn)多維度資產(chǎn)管理。
圖2 系統(tǒng)功能示意圖
該模塊用于建立集中的設(shè)備運行監(jiān)控管理體系,實現(xiàn)運維人員對網(wǎng)絡(luò)設(shè)備、主機、存儲、操作系統(tǒng)、數(shù)據(jù)庫、中間件、應(yīng)用、虛擬化集群、云平臺等的監(jiān)控,實時獲取關(guān)鍵指標(biāo)數(shù)據(jù)并通過Dashboard監(jiān)控儀表盤展現(xiàn)運行指標(biāo)變化趨勢,為運維人員提供故障分析依據(jù)。對于超過預(yù)定報警閾值的指標(biāo),系統(tǒng)通過聲音提示和郵件等形式告知相關(guān)負(fù)責(zé)人,便于快速查看問題。
該模塊用于進行自動化運維操作管理,能夠?qū)崿F(xiàn)自動化日常維護,包括日常巡檢、數(shù)據(jù)備份、補丁升級、口令更改、日志清理等功能,減少運維人員的重復(fù)工作,同時支持用戶自定義的運維操作,及操作編排設(shè)計[8]。自動化運維操作可設(shè)置為手動或定時自動執(zhí)行,與設(shè)備運行監(jiān)控模塊進行聯(lián)動,實現(xiàn)自動化故障處理。
該模塊用于進行日常運維工作的管理,與資產(chǎn)配置管理模塊聯(lián)動,形成規(guī)范化的資產(chǎn)、資源審批管理流程;與設(shè)備運行監(jiān)控和自動化運維模塊聯(lián)動,形成規(guī)范化的日常運維管理流程,使得運維操作便于追溯。
該模塊用于實現(xiàn)運維智能決策。運維管理過程中產(chǎn)生的數(shù)據(jù)包括日志和實時監(jiān)控數(shù)據(jù)等。系統(tǒng)運用大數(shù)據(jù)分析技術(shù),實現(xiàn)日志分析[9]、監(jiān)控分析、異常排查、容量規(guī)劃等功能,用可視化方式展示數(shù)據(jù)計算結(jié)果,為運維人員及管理層提供輔助決策支持,并依據(jù)管理部門統(tǒng)計要求,生成相關(guān)報表。
信息化綜合運維管理系統(tǒng)采用分布式架構(gòu)開發(fā)。系統(tǒng)的設(shè)備運行監(jiān)控和自動化運維等功能模塊通過組件的形式部署在多臺服務(wù)器上。每個功能模塊包含若干組件,組件以子服務(wù)(后臺 deamon 進程)的方式運行,子服務(wù)間使用Message Queue 進行通信,實現(xiàn)異步程序調(diào)用,從而提高系統(tǒng)的總吞吐量。子服務(wù)可以根據(jù)需要進行擴展,啟動更多的實例來處理更多的請求,在提高可用性的同時也提高了整個系統(tǒng)的伸縮性。與傳統(tǒng)架構(gòu)相比,分布式架構(gòu)具有高可靠性、易于擴展和計算性能強等特點。
系統(tǒng)的分布式監(jiān)控組件部署如圖3所示,包括一個監(jiān)控節(jié)點,多個代理節(jié)點以及多個服務(wù)器節(jié)點。在每個被監(jiān)控的服務(wù)器節(jié)點上安裝Agent組件,實現(xiàn)CPU、內(nèi)存、IP、內(nèi)核參數(shù)、核心服務(wù)進程等各項指標(biāo)的自動采集和主動上報,不需要對監(jiān)控節(jié)點做任何其他設(shè)置,方便用戶維護。為了減緩監(jiān)控節(jié)點的數(shù)據(jù)采集壓力,系統(tǒng)設(shè)置了多臺代理節(jié)點,負(fù)責(zé)數(shù)據(jù)的收集和轉(zhuǎn)發(fā)。代理節(jié)點接收到采集數(shù)據(jù)后,將數(shù)據(jù)轉(zhuǎn)發(fā)到報警判定組件Judge和數(shù)據(jù)存儲查詢組件Graph。代理節(jié)點除了接收Agent上報的數(shù)據(jù)外,還通過IPMI協(xié)議采集監(jiān)控設(shè)備硬件管理接口數(shù)據(jù),獲取硬件狀態(tài)及報警信息;通過SNMP協(xié)議采集網(wǎng)絡(luò)設(shè)備管理接口數(shù)據(jù),獲取交換機及路由器的帶寬及流量指標(biāo);通過SSH協(xié)議采集中間件相關(guān)指標(biāo);通過API采集虛擬化集群資源的使用情況。采集到的監(jiān)控數(shù)據(jù)按用途分為2類:(1)用于展示的數(shù)據(jù)存放到PostgreSQL數(shù)據(jù)庫;(2)用于做大數(shù)據(jù)分析的數(shù)據(jù)存入HBase分布式數(shù)據(jù)庫。
基于分布式監(jiān)控技術(shù)實現(xiàn)的云平臺監(jiān)控界面如圖4所示,實時顯示當(dāng)前CPU、內(nèi)存和存儲資源分配情況,以及云服務(wù)組件運行情況。
圖3 分布式監(jiān)控組件部署圖
本文使用基于Hadoop的大數(shù)據(jù)平臺實現(xiàn)運維大數(shù)據(jù)存儲、計算和展示等功能。運維數(shù)據(jù)源來自運維管理過程數(shù)據(jù),包括系統(tǒng)日志、報警日志、實時監(jiān)控數(shù)據(jù)、運維數(shù)據(jù)和用戶操作日志等。經(jīng)過數(shù)據(jù)清洗、分類、聚合、預(yù)處理等數(shù)據(jù)處理方式,將數(shù)據(jù)存儲落地并歸檔,根據(jù)日志、監(jiān)控、報警等業(yè)務(wù)各自的特點,采用適當(dāng)?shù)乃惴P?,對海量?shù)據(jù)進行快速計算處理,并用圖表等直觀方式呈現(xiàn)給用戶。
系統(tǒng)采用Hadoop分布式架構(gòu),使用Flume分布式海量日志采集工具來采集數(shù)據(jù),通過Kafka消息中間件進行數(shù)據(jù)傳輸。系統(tǒng)將Flume采集的原始日志和實時監(jiān)控數(shù)據(jù)存放在分布式文件系統(tǒng)(HDFS)中。HDFS具有高容錯性和高吞吐量等特點,解決了大數(shù)據(jù)存儲的難題。Spark Streaming分布式準(zhǔn)實時計算系統(tǒng)處理延時較低,數(shù)據(jù)吞吐量大,可滿足準(zhǔn)實時大數(shù)據(jù)量分析任務(wù)。系統(tǒng)通過Spark Streaming讀取Kafka隊列數(shù)據(jù),進行數(shù)據(jù)計算分析,將日志分析結(jié)果寫入ES(Elastic Search)分布式數(shù)據(jù)分析引擎,Spark定時讀取ES中的最新日志進行分析,將監(jiān)控數(shù)據(jù)分析計算結(jié)果存放在HBase分布式數(shù)據(jù)庫,數(shù)據(jù)處理流程如圖5所示。
以異常排查功能為例,系統(tǒng)實現(xiàn)了統(tǒng)一的異常排查入口,針對指標(biāo)、日志、服務(wù)、機器進行故障排查,可根據(jù)搜索條件進行異常數(shù)量、機柜圖、時序圖的查詢,幫助運維人員快速定位異常來源和關(guān)聯(lián)關(guān)系,并實現(xiàn)快速跳轉(zhuǎn)到KPI異常分析、日志異常分析、服務(wù)異常分析頁面,有助于深入分析。異常排查分析概覽界面如圖6所示。
系統(tǒng)采用activiti業(yè)務(wù)流程管理框架,實現(xiàn)自定義工作流、執(zhí)行工作流、查看工作流等功能。工作流引擎(ProcessEngine)是activiti架構(gòu)核心,負(fù)責(zé)生成流轉(zhuǎn)運行時的各種實例和數(shù)據(jù)并監(jiān)控和管理流程的運行,方便開發(fā)人員快速構(gòu)建功能豐富、輕便、高效的業(yè)務(wù)流程管理程序。用戶發(fā)起資源申請流程的界面如圖7所示。
信息化綜合運維管理系統(tǒng)運用分布式、大數(shù)據(jù)、工作流引擎等多種技術(shù)、采用多種開源組件,構(gòu)建了一套綜合的、功能完備的、統(tǒng)一的運維管理系統(tǒng)。該系統(tǒng)已在武漢局集團公司信息技術(shù)所上線運行,系統(tǒng)運行穩(wěn)定,數(shù)據(jù)量不斷增長,提高了信息化運維工作效率,也為信息化管理工作提供了依據(jù)。今后,將繼續(xù)在運維自動化和智能化方面努力實踐和探索,不斷優(yōu)化和完善該系統(tǒng)。
圖6 異常排查分析概覽界面
圖7 資源申請流程界面