劉 彬
(廣西交科集團有限公司,廣西 南寧 530007)
機電運維是高速公路管養階段最重要的工作之一。高速公路路段中心集中監控了全部的機電系統軟硬件資源。監控中心通常采用人工定期查看各個系統的方式來判斷軟硬件系統的運行情況,進行日常的運維工作。維護人員需要登錄或者操作的機電系統多,特別是全國實行了ETC門架聯網收費模式后,多采用Linux系統,要求運維人員具有較高的Linux系統基礎知識,并且多數巡檢需要人工檢查并記錄巡查情況,耗時長、過程繁雜、效率低。為解決這一問題,通過研究實時獲取服務器參數信息的技術,以跨平臺監管硬件服務器為基礎,關聯監控各軟件系統的運行情況,通過數據可視化來展示運維全周期信息,構建分布式部署的集群監控管理運維服務,探索高速公路機電系統運維管理新模式。
基于核心組件OSHI搭建一套分布式采集數據集群化監測運維平臺。優點是Spring Boot框架基于Spring4.0設計的Java平臺上的一種開源應用框架[1],可快速跨平臺部署;OSHI組件是一個基于JNA的本地操作系統和Java的硬件信息庫,可跨平臺查看服務器信息,相較于其他硬件數據收集組件,其不依賴任何額外的本機庫,真正提供了跨平臺監測系統信息的能力;在接口校驗上采用了開放的授權網絡協議OAuth2.0認證,允許用戶讓第三方訪問,且無須將用戶名和密碼提供給第三方[2];在通信過程中采用了HTTPS,是在傳統的HTTP基礎上加入SSL證書,降低交互復雜性、減少通信過程交互環節,支持OAuth2.0認證,保證接口的安全調用,確保數據正確發送,防止數據在傳輸過程中被竊取和修改,確保數據的完整性[3];通過分布式網關將各項資源監測指標上報總控平臺,監控指標包括操作系統、進程、內存和CPU使用情況、磁盤和分區、外設、傳感器、網絡吞吐量等關鍵數據,以數據可視化監測各項指標。
高速公路多采用分級控制,機電系統中軟硬件多采用分布式部署。在路段或區域中心的總控平臺通過接收各個服務器網關的狀態、檢測結果、硬件狀態等,包括進程監控、內存使用、硬盤使用、網絡吞吐量等,實現對機電系統中軟硬件的全程監控,以數據可視化來監測,保證機電系統穩定運行。見圖1。

圖1 分布式運維網關集群監控結構圖
先將網關分布式部署在各個監控服務器,實時檢測系統信息,主動推送各項實時監測數據給區域中心總控平臺,總控平臺可實時監控到各個硬件服務器的指標參數,實現對全部管理服務器資源“集群化”管理。見圖2。

圖2 運維網關技術架構圖
為防止監測數據在傳輸過程中不被竊取、改變及惡意的數據注入、偽造等。在信令及數據流中采用加密認證、授權注入的安全機制:(1)API接口協議采用HTTPS,降低交互復雜性、減少通信過程交互環節;(2)支持OAuth2.0授權認證,保證接口安全調用。在運維平臺數據信令流中,加密認證具備有效期驗證,每次網關上報數據都會對請求參數進行解密驗簽。見圖3。

圖3 運維平臺數據信令流流程圖
網關注冊到總控平臺后,可按周期定時向總控平臺發送心跳數據,以此數據來表明服務器在線,總控平臺可通過心跳模式實現服務器的狀態檢測。網關向總控平臺發送心跳數據信令采用HTTPS協議,總控平臺將發行一個有效期短的令牌環。網關需攜帶有效的令牌環進行Oauth2.0認證,當令牌環失效后網關設備需向總控平臺重新發起令牌環刷新指令,獲取新的有效令牌環,在獲取令牌環過程中數字簽名需要進行國密SM2算法加密[4]。
網關通過實時獲取系統的各項性能數據,主動上報給總控平臺,上報的監測數據主要包括:CPU使用情況、內存使用情況、系統運行時間、網絡吞吐量、磁盤分區及使用情況、待監測服務運行情況等。
數據上報過程中采用HTTPS協議,每次網關都需要攜帶有效令牌環,數據采用JSON標準化,POST請求實時上報。
為防止監測數據在傳輸過程中不被竊取、改變及惡意的數據注入、偽造等,確保數據完整性,在認證和授權過程中采用OAuth2.0授權機制來頒發令牌環,用OAuth2.0來實現接口的訪問控制,這樣能夠很好地保證訪問數據的安全性。網關通過令牌環,去請求上報數據。網關申請令牌環之前,都必須先到總控平臺備案,說明自己的身份,然后會拿到兩個身份識別碼:網關編碼和網關密鑰。這是為了防止令牌環被濫用,沒有備案過的第三方應用拿不到令牌環。網關獲取令牌環以后可向總控平臺注冊、上報數據。每個接口請求,都必須攜帶有效的令牌環。具體做法是在請求的頭信息中加上一個Authorization字段,令牌環就放在這個字段里面傳輸。令牌環失效后,網關需重新申請新的令牌環,申請時帶上網關設備編號的BASE64值、編碼、初始令牌環,平臺返回新令牌環[4]。
數字簽名算法遵從“私鑰簽名,公鑰驗簽”的簽名、驗證方式。我們可以把數字簽名算法近似看成是一種附加了公鑰和私鑰的消息摘要算法。sign 生成方法為:使用總控平臺分配的私鑰對deviceCode=deviceCode&user=user&token= token進行國密SM2 算法加密得到,私鑰為線下發放[4]。SM2橢圓曲線算法,主要用于數字簽名、數據加密、密鑰交換以及身份認證等[5]。在令牌環失效或者網關重新獲取令牌環階段,需要根據注冊信息生成有效SM2加密數字簽名。
總控平臺采用數據可視化方式實時展示監測網關數據,在數據可視化上采用ECharts工具,后臺通過接口實時接收到的網關各項性能數據,對全部監測數據進行批量入庫存儲,同時通過WebSocket服務實現服務端主動向瀏覽器推送實時數據,瀏覽器和服務器只需要完成一次握手,兩者之間就可以直接創建持久性的連接,可持久進行數據傳輸。如此設計能夠實現后端實時接收、數據實時推送、瀏覽器實時展示,能更好地節省服務器資源和帶寬,并且能夠更實時地進行數據接收展示,避免監控數據可視化非實時情況。
廣西壯族自治區高速公路發展中心的全區視頻監控聯網系統中,在聯網中心和各個高速公路路段運營公司部署有55臺Linux和windows操作系統的服務器。通過分布式部署網關就可實時高效地監測到全部服務器和服務的正常運程狀態,所有硬件設備的監測數據實時上報至聯網中心總控平臺,總控平臺通過數據可視化的效果展示每一臺設備的運行狀況,可直觀高效管理視頻聯網監控系統后臺情況,實時掌握運行健康度。
本文結合廣西高速公路機電系統智慧運維的需求,分析了傳統高速公路機電系統運維工作中存在的一些問題,特別是Linux系統的運維困難,提出了采用基于OSHI的分布式運維網關,可實現海量軟硬件資源的集群化監測,大大縮減日常機電系統運維時間,提升工作效率,解決機器數據的采集、清洗、存儲、搜索、分析、告警、數據可視化等需求。