胡利軍,莊科旻,楊 豪,許皓皓,黃思源
(寧波市氣象網絡與裝備保障中心,浙江 寧波 315012)
隨著IT信息技術的發展,基于虛擬現實技術以3D可視化的呈現管理方式,結合物聯網技術[1]、圖形圖像識別技術搭建一個智慧虛擬三維信息管理系統。讓數據中心對象的管理更加直觀、更具感知性,管理人員可以更加主動、方便地進行管理。
虛擬現實是以計算機技術為基礎而生成的一種虛擬化的模擬系統,通過對真實情境的模擬和對虛擬環境的控制,增強了人機的交互性,獲得身臨其境的體驗[2]。數據挖掘技術[3]通過對數據的分析,從大量的數據中提取有用的數據,在虛擬現實信息管理系統上進行有效展示。物聯網技術是通過射頻識別(RFID)、紅外感應器、全球定位系統、激光掃描器等信息傳感設備,按約定的協議,將任何物品與互聯網相連接,進行信息交換和通訊,以實現智能化識別、定位、追蹤、監控和管理的一種網絡技術[4]。物聯網技術能使機房管理更加智能、便利。
以圖形圖像技術為核心,用3D虛擬可視化的方式呈現管理內容[5],以物聯網的技術來實現物物相連、人物相連,充分展示數據中心網絡設備、服務器、安全設備等被管理對象,提升管理的可視化和效率。
平臺采用C/S的軟件體系結構,以圖形圖像技術為核心,以TCP/IP作為物聯設備和功能系統的基本通訊協議,具有獨立的3D可視化圖形圖像引擎,負責模型的可視化管理及呈現[6]。可視化管理框架如圖1所示。

圖1 可視化管理框架
系統架構分為四層,分別為基礎層、業務層、管理層和服務層[7]。
(1)基礎層。
基礎層由服務器信息、網絡設備、安全設備、監控視頻、UPS、空調等信息數據采集及其他模塊組成。數據中心服務器、網絡設備等被管理對象以3D可視化的形式呈現,實時顯示在數據中心的位置、放置機柜、當前運行狀態及系統信息,通過權限配置可以增刪管理內容。
(2)業務層。
業務層主要處理系統相關的業務信息,含監控管理、服務器等被管理對象的管理功能,對設備和數據的可視化呈現,對被管理對象產生的異常數據進行有效管理。同時通過與其余系統的對接,讀取與IT業務相關的信息,以3D虛擬方式呈現并進行相應的管理。
(3)管理層。
管理層主要包括用戶管理、權限管理、被管理對象可視化管理等。對系統平臺進行管理、角色分配、權限設置、被管理對象增加刪改、功能布局等。
(4)服務層。
服務層主要包括Sql數據庫、數據通訊服務,對數據進行統一管理,以及系統內或者系統間的數據通信。
數據挖掘是對存放在數據庫或其他信息數據庫中的數據進行提取,挖掘出有用信息的過程。被管理的對象包括服務器、網絡設備、安全設備,以及空調、UPS等機房附屬設備,涉及設備、系統運行情況、網絡安全、信息預警、機房溫濕度、用電、系統日志及管理員出勤、操作等數據信息。通過數據采集、關聯、挖掘,實現多源數據的統一管理。來自各個渠道、各種設備、系統的數據經過處理,抽取有用的信息,轉換成規定格式數據,按預定的規則存入應用數據庫。然后在系統平臺上進行數據裝載、序列或并行展示和提醒。
從設備、系統等被管理對象進行多源數據采集,含基礎信息數據、日志分析數據、運行狀態分析提取數據等。數據歸一化入庫模式分幾類:數據庫間數據交換模式、定格式文件采集導入模式、直接錄入模式。通過服務調用進行自動或手動的數據傳輸實現數據采集。
標準的數據處理模塊分過濾、格式轉換、合并、拆分幾類。不同的系統使用數據的方式和格式不一樣,為便于系統間的數據交換,需要開發數據處理模塊,以實現不同系統間自動的數據格式轉換,包括數據庫數據、文件數據、XML格式數據等。從數據源中獲取數據,經過清洗提取有用信息,進行轉換和整合,裝載到數據資源庫中,同時負責數據在不同層的業務應用間的加工和裝載。通過使用ETL抽取工具和存儲過程腳本相結合的方式,進行數據抽取、轉換、加載。由于數據源系統比較多,數據整合功能需要具備靈活的配置能力,包括整合規則的配置、整合方式的配置和整合頻度的配置。
對從源數據過來的數據進行清洗和轉換[8],在這個過程中,要從多源數據中提取有用的數據,并清洗掉無用的數據,使其符合策略規定。數據挖掘中,大部分的工作花在數據清洗上,格式的統一、數據的歸一化、數據的去繁從簡、數據完整性等。日志信息的提取,就要提取異常的信息數據進行分析,清洗掉正常的信息。對于一些氣象探測數據就要按照一定的方法進行數據填補。
數據中心平臺ETL工具中的數據轉換的任務主要是根據字段映射關系生成新表、不一致的數據轉換和一些業務規則的計算。根據預先制定的轉換規則和映射關系生成新的數據表以及中間表和匯總表等,不同業務有不同的規則和指標,需要對數據指標進行預計算,以供分析使用。
把數據挖掘技術融合到檢測網絡安全中,分析原有入侵信息的數據,挖掘提取出各個行為特征、分析入侵行為的規律,從而建立入侵特征庫來進行網絡安全分析[9-10]。
采用基于模糊關聯規則挖掘的網絡入侵檢測算法,模糊關聯規則算法通過引入模糊理論建立入侵檢測行為規則,能有效提高特征之間的關聯,具有較強的適應性。先提取入侵行為的特征,采用模糊關聯規則算法對特征進行挖掘,減少特征之間的關聯度,然后建立網絡入侵檢測的分類器,從海量數據中發現規律,找出一些有重要貢獻的特征數據;然后引入模糊理論對特征數據進行處理,給每個特征賦一個模糊值,并根據模糊隸屬度函數得到每個特征的模糊隸屬值。利用向量機對樣本進行學習,建立最優網絡入侵檢測的分類器,采用測試樣本對網絡入侵檢測分類器的性能進行分析。
通過上述機器學習樣本建立,然后收集網絡狀態信息,提取網絡的狀態特征,根據隸屬度函數值對網絡入侵的特征進行處理。通過模糊關聯建立的入侵特征庫對網絡信息日志服務器中實時信息進行檢測,分析其行為,當發現有入侵特征的行為時,進行實時報警。如2018年10月9日,入侵檢測系統檢測到web服務器192.168.-.---的http響應里面出現Directory請求(目錄遍歷),提交到數據庫。本系統實時監控該數據庫,讀取該報警后,及時在監控平臺的服務器上顯示受到攻擊的類型和攻擊者的ip等詳細信息,方便值班員及時處理。
虛擬漫游在建筑、旅游、游戲、航空航天、醫學等多種行業發展很快。其中虛擬建筑場景漫游是虛擬漫游的一個代表性方面,它是虛擬建筑場景建立技術和虛擬漫游技術的結合,前者是基礎,后者是系統運行方法[11]。與傳統漫游手段相比,虛擬漫游更具有沉浸感、交互性和構想性。對新事物認知的需要,能夠身臨其境地去體驗事物已經成為一種使用習慣[12]。通過虛擬漫游技術可以帶來三維體驗感,操作的交互性實現了人機關系的跨越,使漫游體驗更真實[13]。平臺使用Unity 3D實現虛擬漫游技術[14],使管理員在異地操作時更真實、清晰。圖2是大樓周邊環境,通過操作可以模擬瀏覽周圍環境。
對象虛擬可視化呈現的步驟如圖3所示。
構建三維模型時需要利用3D MAX對建筑物、道路、樹木、機房場景和設備進行建模、貼圖和模型烘焙[15]。

圖2 大樓周邊環境

圖3 對象呈現流程
整個虛擬模型包括大樓外景觀、設備檢定室、高性能機房和數據中心。大樓外景觀包括大樓周圍建筑物、道路、樹木植被等。設備檢定室包括計算機、檢定儀器設備、被檢傳感器等。數據中心機房和高性能機房包括機柜、服務器、網絡設備、安全設備、配電柜、空調、溫濕度傳感器、視頻監控等。
將用3D MAX建立的模型轉換成fbx文件導入到Unity 3D中,下一步為模型創建預置體。預置體可以重復使用,幾個object(對象)可以用同一個預置體創建,這就是對象的實例化[16-17]。
因為機房機柜、服務器、網絡設備等設備數量是會發生變化的,所以不能事先創建對象,只能在程序中實時創建。事先對各種品牌、各種型號的服務器、網絡設備、機柜創建模型,建立預置體。把各種設備信息錄入到數據庫中,當新購入設備后,通過添加設備程序加入到服務器信息表中,使服務器信息表的數據代表機房實時服務器、網絡設備狀況。

圖4 設備信息表
圖4是設備信息表數據結構。腳本通過讀取服務器信息表數據和服務器預置體名稱比較,獲取相同類型的預置體進行實例化,設置服務器信息。
代碼如下:
//獲取形同類型的服務器預置體實例化
go=GameObject.Instantiate(CtrlUIPublicClass.getByGameName(list[i].namepre,servers)) asGameObject;
//設置父節點
go.transform.SetParent(fmodel.transform,false);
//設置位置
go.transform.localPosition=new Vector3(c_x,c_y,c_z);
go.transform.localEulerAngles=new Vector3(r_x,r_y,r_z);
go.transform.localScale=Vector3.one;
Unity 3D內置的組件將物理引擎、聲音引擎、碰撞檢測、動畫組件、場景管理等模塊封裝得非常易用,可視化的編輯器,可以幫助開發者實時預覽場景效果,其界面交互技術也是實現二維模型與全景圖像集成化管理漫游的關鍵。系統機房機柜單獨呈現,點擊機柜單獨呈現機柜,模擬機柜開關門,點擊機柜服務器有動畫抽出動作,顯示服務器及設備相關參數、圖片信息、應用信息,如是網頁應用能跳轉到相應的網頁。
(1)場景旋轉。
點擊旋轉按鈕,場景隨著第一人稱視角旋轉。在Unity 3D中,用transform組件來獲取一個物體的位置,用transform的RotateAround方法可以實現場景旋轉。圖5是機房環境。

圖5 機房環境
關鍵代碼如下:
if(fmodelStartRotate && isFmodelClick){
fmodel.transform.RotateAround(RoateGameObject.transform.position,fmodel.transform.transform.up,Time.deltaTime * 10f);
}
(2)實現開關門動畫。
點擊房門,門慢慢開啟。transform組件的Rotate方法可以實現物體按設置的角度旋轉。關鍵代碼如下:
if(objdoorOpen.transform.parent.gameObject.GetComponent().isOpenDroo){
temp=rotSpeed * Time.deltaTime;
objdoorOpen.transform.Rotate(temp);
rotulateCut+=temp;
}
else{
temp=rotSpeed * Time.deltaTime;
objdoorOpen.transform.Rotate(-temp);
rotulate+=temp;
}
(3)服務器進出動畫。
點擊服務器,服務器慢慢抽出。transform組件的Translate方法可以實現物體按照設置的方向移動,如圖6所示。

圖6 服務器信息
關鍵代碼如下:
if(updateObj.GetComponent().ServerId==lastObj.GetComponent().ServerId){
temp=speed * Time.deltaTime;
updateObj.transform.Translate(temp);
}
(4)通過點擊實現鏈接交互。
界面實現鏈接主要通過GUI實現,通過點擊服務器或網絡設備。模型實體的鏈接交互通過檢測鼠標點擊事件進行。在創建模型實體的腳本中添加該實體的onClickServerBtn()事件,在這個事件中編寫相應的函數就可實現需要的效果。如需要知道該服務器的詳細信息,通過點擊該服務器,就會彈出該服務器的詳細介紹,核心代碼如下:
public void onClickServerBtn(){
cpc.printServerModelTOPanel(serverModelPanel.transform.FindChild("ServerModelGrid").gameObject,serverModelBlack,1);
}
Unity 3D應用可以部署成單機使用和網絡使用。
3.4.1 單機使用
一般情況下,默認的是單機發布。點擊Unity的build setting會彈出一個客戶端操作系統的對話框,進行發布,并且把需要的場景按照順序拖放至Current中,用來實現鏈接跳轉。點擊build按鈕后,設置分辨率和渲染質量后,生成一個EXE格式的可執行文件與一個文件夾,保持文件和文件夾目錄一致,不然會導致無法運行。
3.4.2 網絡使用
點擊Unity的build setting后,選擇web player選項,build生成一個網頁文件和一個.Unity 3D文件,然后在iis服務器上配置好后就能實現網絡發布。服務器端將網頁和.Unity 3D 文件配置好后,用戶通過瀏覽器進行訪問。
3.4.3 使用結果
由于Unity 3D的發布運行不需要額外的安裝程序,單機發布后直接點擊EXE文件就可運行,網絡發布只需要安裝一個大約500 KB的控件就可以運行。該平臺投入運行后,運行流暢,操作設備時真實性、交互性較強。
采用三維虛擬技術來開發數據中心信息管理系統,實現了場景驅動、交互、多平臺部署功能,使用戶能夠通過單機、網頁運行該平臺,在三維模擬中進行工作。與傳統的實地操作相比,節省了時間成本和人力成本,提高了工作效率。另外,由于數據中心被管理對象,網絡設備或服務器等隨著時間的推移在不斷地更新、升級,為了確保系統模擬的真實性,要及時做好信息系統的更新維護,及時將新對象建模和導入到應用程序和數據庫中。