高 鵬
(中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所,北京 100081 )
隨著互聯(lián)網(wǎng)的快速發(fā)展,以及云計(jì)算、大數(shù)據(jù)、區(qū)塊鏈的大規(guī)模應(yīng)用,服務(wù)器集群節(jié)點(diǎn)數(shù)量成倍增加,業(yè)務(wù)系統(tǒng)變得越來(lái)越復(fù)雜,一個(gè)系統(tǒng)往往由多個(gè)應(yīng)用組成,導(dǎo)致運(yùn)維難度逐漸加大。傳統(tǒng)運(yùn)維方式中,運(yùn)維人員疲于處理各種故障,效率低下,即使加班加點(diǎn)的調(diào)試、部署、維護(hù),也經(jīng)常會(huì)因設(shè)備故障而導(dǎo)致業(yè)務(wù)中斷,嚴(yán)重影響系統(tǒng)正常運(yùn)轉(zhuǎn)。鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)通過運(yùn)營(yíng)商撥號(hào)方式實(shí)現(xiàn)互聯(lián)網(wǎng)接入,其網(wǎng)絡(luò)環(huán)境復(fù)雜,穩(wěn)定性差且無(wú)固定公網(wǎng)IP,無(wú)法直接實(shí)現(xiàn)全系統(tǒng)的集中化監(jiān)控與管理[1]。盡管目前市場(chǎng)上有較多的開源監(jiān)控系統(tǒng)產(chǎn)品,如:Nagios、Cacti、Zenoss等,一定程度上提高了運(yùn)維效率,節(jié)約了運(yùn)維成本,但其服務(wù)對(duì)象相對(duì)單一,可定制性差,無(wú)法滿足日益增長(zhǎng)的企業(yè)級(jí)服務(wù)發(fā)展需求,而開源監(jiān)控方案Zabbix依據(jù)其強(qiáng)大的展現(xiàn)功能和可擴(kuò)展性,加上獨(dú)特的開源性和簡(jiǎn)單易用等特點(diǎn),更適用于鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)綜合監(jiān)控系統(tǒng)[2]。
本文圍繞鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)實(shí)際部署環(huán)境及應(yīng)用場(chǎng)景,提出了基于Zabbix的鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)監(jiān)控系統(tǒng)方案。該方案通過整合、分析系統(tǒng)資源,實(shí)現(xiàn)從物理資源到系統(tǒng)虛擬資源、端到端的全方位立體化監(jiān)控,解決了大批量車載W iFi服務(wù)器監(jiān)控難、實(shí)時(shí)性差以及故障告警不敏捷等問題,滿足了系統(tǒng)運(yùn)維人員的運(yùn)維需求,并構(gòu)建了獨(dú)立的集成化Web系統(tǒng),完成了對(duì)鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)資源的綜合監(jiān)控與管理,同時(shí)提供可視化的配置支持。
鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)主要由運(yùn)營(yíng)管理中心、地面網(wǎng)絡(luò)和車載局域網(wǎng)3部分組成,其網(wǎng)絡(luò)結(jié)構(gòu)主要包括互聯(lián)網(wǎng)接入和車載局域網(wǎng)兩部分[3],系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。
互聯(lián)網(wǎng)接入作為整個(gè)動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)的互聯(lián)網(wǎng)出口,通過車頂3G/4G天線與鐵路沿線運(yùn)營(yíng)商公網(wǎng)基站建立無(wú)線連接通道;車載局域網(wǎng)為車廂內(nèi)用戶終端和單車設(shè)備之間提供車內(nèi)通信網(wǎng)絡(luò),車內(nèi)用戶終端可共享車載無(wú)線局域網(wǎng)系統(tǒng)的內(nèi)容服務(wù),車廂單車之間通過車載局域網(wǎng)實(shí)現(xiàn)互聯(lián)互通[4]。
2017年6 月,首列“復(fù)興號(hào)”標(biāo)動(dòng)列車正式上線運(yùn)營(yíng),鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)作為“復(fù)興號(hào)”標(biāo)動(dòng)列車的配套設(shè)施也隨之面世,旅客乘車期間可以享受鐵路動(dòng)車組W iFi這一增值服務(wù)。隨著大批量標(biāo)動(dòng)“復(fù)興號(hào)”列車投入運(yùn)營(yíng),鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)體系規(guī)模不斷擴(kuò)大,其運(yùn)營(yíng)管理上亟需實(shí)現(xiàn)實(shí)時(shí)掌控系統(tǒng)運(yùn)行狀態(tài)、監(jiān)控系統(tǒng)突發(fā)事件,以動(dòng)態(tài)調(diào)整運(yùn)營(yíng)策略,進(jìn)而實(shí)現(xiàn)鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)價(jià)值最大化。為滿足動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)需求,根據(jù)鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)業(yè)務(wù)架構(gòu),構(gòu)建基于Zabbix的車-車、車-地、地-地一體化綜合監(jiān)控系統(tǒng)平臺(tái)[5],分別從鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)硬件層面、系統(tǒng)層面、業(yè)務(wù)層面進(jìn)行需求分析,以實(shí)現(xiàn)對(duì)不同層次粒度數(shù)據(jù)的采集與融合。
圖1 鐵路動(dòng)車組WiFi運(yùn)營(yíng)服務(wù)系統(tǒng)結(jié)構(gòu)圖
Zabbix作為一套完備的服務(wù)器主機(jī)監(jiān)控解決方案,通過對(duì)物理設(shè)備和系統(tǒng)應(yīng)用參數(shù)的采集分析,建立靈活的多級(jí)預(yù)警通知機(jī)制,使系統(tǒng)故障得到實(shí)時(shí)響應(yīng),并以前端W eb或媒介推送形式進(jìn)行報(bào)告和統(tǒng)計(jì)[6]。Zabbix系統(tǒng)框架主要由數(shù)據(jù)采集部分(客戶端Agentdd)和數(shù)據(jù)分析告警展示部分(服務(wù)端Server)兩部分構(gòu)成。Agentdd端數(shù)據(jù)的采集模式又分為主動(dòng)模式(客戶端主動(dòng)上報(bào)數(shù)據(jù)到服務(wù)端)和被動(dòng)模式(服務(wù)端到客戶端采集數(shù)據(jù))。Zabbix_ Agentdd啟動(dòng)時(shí),會(huì)根據(jù)服務(wù)端設(shè)定的采樣間隔向Zabbix_Server請(qǐng)求監(jiān)控項(xiàng),通過監(jiān)控系統(tǒng)預(yù)設(shè)端口將監(jiān)控?cái)?shù)據(jù)項(xiàng)傳送給服務(wù)器。Zabbix監(jiān)控原理如圖2所示。
圖2 監(jiān)控系統(tǒng)原理圖
基于鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)服務(wù)節(jié)點(diǎn)分散、規(guī)模大等特性,Zabbix監(jiān)控系統(tǒng)采用主動(dòng)式上報(bào)模式對(duì)終端數(shù)據(jù)項(xiàng)進(jìn)行采集,以減少監(jiān)控系統(tǒng)服務(wù)端的請(qǐng)求壓力?;趧?dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)應(yīng)用場(chǎng)景的特殊性,為保障系統(tǒng)數(shù)據(jù)安全,防止攻擊者利用諸如SQL注入等方式攻擊Zabbix數(shù)據(jù)庫(kù)獲取敏感數(shù)據(jù)或繞過授權(quán)登錄步驟獲取服務(wù)器操作系統(tǒng)權(quán)限等入侵隱患,Zabbix監(jiān)控系統(tǒng)將Zabbix _Server部署在客票系統(tǒng)內(nèi)部專網(wǎng)(簡(jiǎn)稱:內(nèi)網(wǎng))環(huán)境中,所有服務(wù)必須經(jīng)過客票系統(tǒng)12306.cn域名以及應(yīng)用負(fù)載轉(zhuǎn)發(fā),確保鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)的穩(wěn)定性與安全性。Zabbix_Server將終端被監(jiān)控機(jī)器的相關(guān)監(jiān)控?cái)?shù)據(jù)在M YSQL中持久化儲(chǔ)存[7],便于后續(xù)的數(shù)據(jù)處理和重用。基于Zabbix的鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)監(jiān)控系統(tǒng)部署架構(gòu)如圖3所示。
2.3.1 高性能網(wǎng)絡(luò)數(shù)據(jù)包緩存與轉(zhuǎn)發(fā)
基于鐵路動(dòng)車組具有配屬局分散、不集中等特性,為避免鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)監(jiān)控系統(tǒng)的Zabbix_Server端無(wú)法承受來(lái)自終端Zabbix_Agentdd頻繁請(qǐng)求壓力,Zabbix監(jiān)控系統(tǒng)以列為單位,將列車采集數(shù)據(jù)集中到同一數(shù)據(jù)緩存節(jié)點(diǎn),Zabbix_AAgentd在該緩存節(jié)點(diǎn)拿取數(shù)據(jù),以主動(dòng)上報(bào)方式傳到Zabbix_Serve端。該監(jiān)控系統(tǒng)設(shè)定車載中心服務(wù)器作為每列車的數(shù)據(jù)緩存節(jié)點(diǎn),在其部署Zabbix_Agentd,并配置對(duì)應(yīng)列車的Host_nam e。各車廂單車服務(wù)器及AP產(chǎn)生的數(shù)據(jù)集中到車載W iFi接入控制器(AC)上,車載AC將接收到的數(shù)據(jù)集中于車載中心服務(wù)器基于分布式文件儲(chǔ)存的數(shù)據(jù)庫(kù)(m ongoDB)中存儲(chǔ),數(shù)據(jù)以設(shè)備ID分類羅列。如圖4所示,M ongoDB中展示了ID為“ZTC-01-000BABDF3355(設(shè)備生產(chǎn)商編號(hào)-設(shè)備類型編號(hào)-設(shè)備M AC)”中心路由器上報(bào)的參數(shù)。Zabbix_AAgen td可直接從M ongoDB中調(diào)集參數(shù)上報(bào)給Zabbix_Server端,這種上報(bào)方式減少了Zabbix _Agentd部署節(jié)點(diǎn)數(shù)量,緩解了Zabbix _Server端的處理壓力,對(duì)動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)監(jiān)控系統(tǒng)后續(xù)性能的擴(kuò)展有著重要意義,提升了監(jiān)控系統(tǒng)平臺(tái)的實(shí)時(shí)性和穩(wěn)定性。
2.3.2 通信協(xié)議轉(zhuǎn)換
圖3 監(jiān)控系統(tǒng)部署架構(gòu)圖
鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)涉及諸多旅客私密信息,為保障Zabbix 監(jiān)控系統(tǒng)服務(wù)端數(shù)據(jù)的安全性,將Zabbix_Server從原有的公網(wǎng)阿里云端遷移到客票系統(tǒng)內(nèi)網(wǎng)部署。內(nèi)網(wǎng)對(duì)于通信協(xié)議有嚴(yán)格的限制,客票系統(tǒng)內(nèi)網(wǎng)防火墻只允許來(lái)自CDN的HTTP請(qǐng)求通過,而Zabbix監(jiān)控系統(tǒng)默認(rèn)通信協(xié)議為TCP[8],這種基于安全防護(hù)設(shè)計(jì)下的監(jiān)控模式無(wú)法使監(jiān)控?cái)?shù)據(jù)項(xiàng)通過防火墻上報(bào)給Zabbix_Server。本監(jiān)控系統(tǒng)通過設(shè)計(jì)TCP/HTTP橋接器,將Zabbix_Server與Zabbix_Agentd之間的通信通過HTTP橋接起來(lái)。即將原有C/S結(jié)構(gòu)軟件的數(shù)據(jù)由“SERVER<-TCP->CLIENT”轉(zhuǎn)為“SERVER<-TCP->BRIDGE<-HTTP->BRIDGE<-TCP->CLIENT”,其工作流程如下:
(1)Zabbix_Agentd發(fā)起TCP請(qǐng)求,請(qǐng)求獲取“active items”,Agentd橋接器監(jiān)聽到此TCP請(qǐng)求;
(2)Agentd端橋接器將接受的TCP請(qǐng)求數(shù)據(jù)(byte[] 數(shù)組類型)通過Base64編碼,以HTTP方式(Post/Get請(qǐng)求)送到Server端橋接器;
(3)Server端橋接器收到請(qǐng)求數(shù)據(jù),將數(shù)據(jù)解碼還原成Byte類型數(shù)組,以TCP方式發(fā)送到Zabbix Server端,Zabbix_ Server端返回TCP響應(yīng),Server橋接器獲得響應(yīng)數(shù)據(jù),并將響應(yīng)數(shù)據(jù)經(jīng)過Base64編碼處理后以HTTP方式發(fā)送回Agentd端橋接器;
(4)Agentd端橋接器將返回?cái)?shù)據(jù)還原成Byte類型數(shù)組,以TCP方式響應(yīng)給Zabbix_Agentd, Zabbix_Agentd獲取響應(yīng),解析返回的字符串,完成一次橋接通信,斷開Socket。
2.3.3 日志集中檢索與全鏈路追蹤技術(shù)
鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)內(nèi)部服務(wù)應(yīng)用眾多,部署機(jī)器數(shù)量較大,平臺(tái)每天將產(chǎn)生大量日志數(shù)據(jù)(約2 000萬(wàn)條),當(dāng)用戶業(yè)務(wù)訪問出現(xiàn)異常時(shí),快速定位并分析問題極為困難。日志分析平臺(tái)將所有機(jī)器、應(yīng)用實(shí)例所產(chǎn)生的日志由日志采集代理收集并傳輸至平臺(tái)進(jìn)行存儲(chǔ)、建立索引并提供日志檢索服務(wù)。對(duì)于每個(gè)用戶終端請(qǐng)求統(tǒng)一分配全平臺(tái)范圍內(nèi)的唯一追蹤ID,根據(jù)此唯一追蹤ID即可實(shí)現(xiàn)對(duì)用戶請(qǐng)求處理過程的全鏈路追蹤,同時(shí),結(jié)合日志時(shí)間戳可以分析用戶請(qǐng)求處理過程中每個(gè)處理步驟的耗時(shí)情況,并繪制服務(wù)處理時(shí)序圖與服務(wù)調(diào)用關(guān)系圖,幫助研發(fā)人員快速定位,分析問題。日志集中分析平臺(tái)從日志產(chǎn)生到提供檢索延時(shí)不超過5 s,平均檢索耗時(shí)在3 s以內(nèi),為研發(fā)與運(yùn)維人員提供了強(qiáng)有力的故障定位工具,同時(shí),也是平臺(tái)運(yùn)行狀況監(jiān)控的重要數(shù)據(jù)源。
圖4 MongoDB 數(shù)據(jù)儲(chǔ)存列表
Zabbix監(jiān)控系統(tǒng)通過自定義腳本對(duì)車載中心服務(wù)器路由板網(wǎng)卡的流量消耗實(shí)時(shí)性監(jiān)控,Zabbix_Server端通過對(duì)消耗流量統(tǒng)計(jì)分析,以層積圖的形式展示在監(jiān)控主界面。車載AC管理平臺(tái)將各單車用戶數(shù)據(jù)收集并通過Zabbix_Agentd上傳至Zabbix_Server端 。結(jié)合列車開行線路、車載W iFi在線用戶以及流量消耗,可作為綜合評(píng)價(jià)運(yùn)行區(qū)段用戶活躍度重要參考指標(biāo)。
Zabbix監(jiān)控服務(wù)平臺(tái)通過對(duì)監(jiān)控消息過濾后,一些可讀性不高的消息在被處理之后獲得良好的可讀性,因此,需要一個(gè)良好的通知機(jī)制將這些消息推送給運(yùn)維人員[9-10],Zabbix默認(rèn)支持郵件告警功能,但存在被攔截的概率或郵件接收不及時(shí)甚至容易被忽視[11];短信推送則需要調(diào)用信息網(wǎng)關(guān),會(huì)產(chǎn)生一定的費(fèi)用。綜合多方面因素,系統(tǒng)使用自定義腳本以釘釘APP作為媒介,推報(bào)平臺(tái)告警信息、運(yùn)營(yíng)統(tǒng)計(jì)信息、列車交路報(bào)表等信息,通過對(duì)關(guān)鍵監(jiān)控?cái)?shù)據(jù)配置故障告警觸發(fā)器并合理配置告警觸發(fā)的頻度與延遲閾值,達(dá)到列車運(yùn)行異常即時(shí)上報(bào),同時(shí)又避免頻繁誤報(bào)的現(xiàn)象。
車載W iFi設(shè)備是鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)重要組成部分,其狀態(tài)好壞會(huì)直接影響鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)質(zhì)量,因此,實(shí)時(shí)掌握車載W iFi設(shè)備運(yùn)行狀態(tài),是提高系統(tǒng)穩(wěn)定,增強(qiáng)用戶體驗(yàn)感的必然前提。Zabbix監(jiān)控系統(tǒng)通過實(shí)時(shí)監(jiān)測(cè)終端設(shè)備的心跳包(客戶端與服務(wù)器間的響應(yīng)數(shù)據(jù)包),根據(jù)其呼應(yīng)頻率特性分析,判斷設(shè)備在線狀態(tài)。車載接入器(AP)作為W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)中數(shù)量多,易被攻擊的設(shè)備,其狀態(tài)的好壞對(duì)整個(gè)系統(tǒng)穩(wěn)定顯得至關(guān)重要,本監(jiān)控系統(tǒng)設(shè)置30 s為一上報(bào)周期,對(duì)其狀態(tài)進(jìn)行實(shí)時(shí)性監(jiān)控。預(yù)設(shè)AP在線狀態(tài)值為1,不在線狀態(tài)值為0,車載控制器(AC)設(shè)定15 m in為一周期,對(duì)AP上報(bào)狀態(tài)結(jié)果進(jìn)行分析判定,以單車廂分組(每單車廂固定配置2個(gè)AP),展示出周期內(nèi)上報(bào)數(shù)據(jù)的最新值、最小值、平均值、最大值,根據(jù)圖形化狀態(tài)圖趨勢(shì)[12],直觀獲取終端AP在線狀態(tài),進(jìn)而評(píng)估系統(tǒng)的穩(wěn)定性。其狀態(tài)分析展示如圖5所示。
圖5 AP狀態(tài)監(jiān)控圖
通過對(duì)終端設(shè)備系統(tǒng)應(yīng)用參數(shù)的采集,將實(shí)時(shí)數(shù)據(jù)進(jìn)行圖形化展示,圖6展示了應(yīng)用系統(tǒng)1 m in內(nèi)的平均負(fù)載、內(nèi)存占用的歷史記錄。隨著列車開行時(shí)間的推移,鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)接入用戶數(shù)累計(jì)增加,中間件(M YSQL)事務(wù)每秒查詢和回滾率隨之上升,通過對(duì)多系統(tǒng)參數(shù)指標(biāo)的參考,用以整體性分析、評(píng)估系統(tǒng)運(yùn)行的平穩(wěn)性和健壯性。
圖6 設(shè)備系統(tǒng)參數(shù)監(jiān)控圖
通過使用腳本程序添加自定義監(jiān)控參數(shù),形成監(jiān)控網(wǎng)卡數(shù)據(jù)的可視化界面。從圖7可以看出列車在不同行駛時(shí)間、行駛區(qū)段各運(yùn)營(yíng)商網(wǎng)卡信號(hào)強(qiáng)度的變化趨勢(shì),圖8展示了旅客用戶在W iFi使用過程中帶寬的實(shí)時(shí)變化趨勢(shì),圖7、圖8中都有出現(xiàn)數(shù)據(jù)急劇變化的區(qū)段,這與列車穿過隧道或車站,隧道或車站對(duì)運(yùn)營(yíng)商的信號(hào)有很大的屏蔽效應(yīng)有直接關(guān)系,同時(shí),信號(hào)強(qiáng)度以及帶寬上下的波動(dòng)會(huì)受鐵路沿線運(yùn)營(yíng)商信號(hào)覆蓋率的影響。
基于Zabbix監(jiān)控技術(shù)與數(shù)據(jù)可視化研究的基礎(chǔ)上,針對(duì)Zabbix分布式、可擴(kuò)展性等特點(diǎn),結(jié)合鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)運(yùn)營(yíng)數(shù)據(jù)建立監(jiān)控環(huán)境,進(jìn)行Zabbix監(jiān)控系統(tǒng)的搭建和優(yōu)化,利用其強(qiáng)大的應(yīng)用程序接口(API)擴(kuò)展能力,實(shí)現(xiàn)了動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)相關(guān)資源的整合。通過用戶定制,添加自定義監(jiān)控項(xiàng),完成了對(duì)動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)數(shù)據(jù)的可視化監(jiān)控與管理,這些改進(jìn)突破了傳統(tǒng)系統(tǒng)平臺(tái)的運(yùn)維管理方式,整合了監(jiān)控管理工具和通用集中監(jiān)控系統(tǒng)的優(yōu)勢(shì),對(duì)保障鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)平穩(wěn)運(yùn)行具有重要意義。本監(jiān)控系統(tǒng)全面應(yīng)用以來(lái),以監(jiān)控代替檢查,實(shí)現(xiàn)了系統(tǒng)運(yùn)維的數(shù)字化、信息化及自動(dòng)化,不但節(jié)約了運(yùn)維人力的投入,而且精準(zhǔn)度高,預(yù)警性強(qiáng),切實(shí)為鐵路動(dòng)車組W iFi運(yùn)營(yíng)服務(wù)系統(tǒng)起到了保駕護(hù)航的作用,同時(shí),該系統(tǒng)監(jiān)控系統(tǒng)的建設(shè)及改進(jìn)對(duì)類似大型企業(yè)級(jí)應(yīng)用具有借鑒價(jià)值。
圖7 4G通信單元信號(hào)強(qiáng)度圖
圖8 網(wǎng)卡下行帶寬圖