朱貴發,黃勇萍
(廣西民族師范學院 數理與電子信息工程學院,廣西 崇左 532200)
隨著互聯網的普及以及新型網絡技術的出現,網絡應用越來越復雜,網絡運維工作量也越來越大。在網絡運維工作中,人們常通過對網絡設備和終端的定位了解網絡的情況,以完成實現設備監控、網絡流量分析、網絡故障定位等工作,提高網絡運維效率。本系統基于華為集管理、控制、分析和AI智能功能于一體的網絡自動化與智能化云管理平臺Master NCE-Campus,通過平臺提供的API,獲取云端數據,主要包括網絡中部署的AP、接入的終端等信息。分析獲得的數據,提取每個AP的坐標、名字、mac地址、信號強度,統計所接入終端的數量,每個終端的MAC地址、坐標等信息。同時,基于python flask web框架設計簡單美觀頁面,實現數據的可視化,方便查看園區網絡中部署的AP,接入終端的基本信息和位置,從而快速地了解網絡拓撲,以便進一步實現故障定位,網絡應用預測等工作,實現網絡自動化、智能化管理,降低網絡運維成本,提高網絡運維效率[1]。
系統設計以深圳站點N5-2F為例,獲取深圳站點N5-2F網絡中所部署的AP以及AP接入的終端位置等數據,頁面設計以深圳站點N5-2F拓撲圖為背景,實現AP及終端定位,同時,添加鼠標劃過顯示設備詳細信息,以及模擬AP信號發射等效果。
參照API開發應用指南,首先應用API:/rest/plat/smapp/v1/oauth/token獲取token;然后應用查詢樓層設備API:/rest/campuswlantopowebsite/v1/wlantopo/topoinfo,獲取深圳站點N5-2F樓層下所有AP名字、位置等數據,同時應用查詢終端位置API:/rest/campusrtlswebsite/v1/clientlocation/lastlocation,獲取深圳站點N5-2F樓層下所有用戶終端名字、位置等信息。
參照API開發應用指南,根據獲取深圳站點N5-2F樓層下所有AP信息的響應報文格式分析AP信息數據。首先參照指南中的topo對象的屬性列表(見表1),使用表中所示的resultData參數,取出相應的響應數據。
表1 topo對象的屬性
接著,參考API開發應用指南中的apList對象屬性列表,從AP列表數據中,根據Name,x,y,apMac等參數分析出AP名字、x坐標、y坐標以及該AP的mac地址。然后,參照API開發應用指南,根據獲取深圳站點N5-2F樓層下所有用戶終端信息的響應報文格式分析終端信息數據。首先參照指南中的topo對象的屬性列表,使用表中所示的data參數,取出相應的響應數據。最后,參考API開發應用指南中的data對象的屬性列表,從終端數據列表中,根據clientMac,x,y,probeInfo等參數分析出終端mac地址、x坐標、y坐標以及該終端連接的AP的mac地址及其信號強度。其中probeInfo參數對應的數據:終端連接的AP的mac地址及其信號強度,需要進行html解碼。
使用python flask web 框架實現數據的可視化和設備定位,首先將分析出來的AP名字、x坐標、y坐標以及該AP的mac地址,終端mac地址、x坐標、y坐標以及該終端連接的AP的mac地址及其信號強度等數據以json數據格式打包。前端html頁面通過java script ajax發送請求獲取AP及終端json數據。以
參照API開發應用指南,應用API:/rest/plat/smapp/v1/oauth/token獲取token,此API采用PUT請求,Headers參數及請求體如下:
headers = {
"Content-Type": "application/json"}
data = {
"grantType": "password",
"userName": "華為ilearningX平臺賬號",
"value": "華為ilearningX平臺賬號密碼"
}
使用python的requests模塊的put方法提交獲取token請求,將響應數據轉化json格式,再以“accessSession”參數為關鍵字獲取token數據,關鍵代碼如下:
response = requests.put(url, headers=headers, data=json.dumps(data), verify=False)
token = response.json()['accessSession']參照API開發應用指南,應用查詢樓層設備API: /rest/campuswlantopowebsite/v1/wlantopo/topoinfo,獲取深圳站點N5-2F樓層下所有AP名字,位置等數據,此API采用get請求,Headers參數及請求體如下:
headers = {
"Content-Type": "application/json",
"X-Auth-Token": token,
"Accept": "application/json"
}
data = {
"id": "540d8574-a743-4cda-a47e-3718b6a4f722",
"level": 3,
"type": "floor"
}
使用python的requests模塊的get方法提交獲取數據請求,將響應數據轉化json格式,再以“resultData”“apList”“AP”參數為關鍵字獲取AP信息,關鍵代碼如下:
res = requests.get(url, headers=headers, verify=False)
ap_data = res.json()['resultData']['apList']['AP']
參照API開發應用指南,應用查詢終端位置API: /rest/campusrtlswebsite/v1/clientlocation/lastlocation,獲取深圳站點N5-2F樓層下所有用戶終端名字、位置等信息。此API采用post請求,Headers參數及請求體參數設置與獲取AP信息時相應參數設置相同。
使用python的requests模塊的post方法提交獲取數據請求,將響應數據轉化json格式,再以‘data’參數為關鍵字獲取終端信息,關鍵代碼如下:
station_data = res.json()['data']
首先,將獲取到的AP數據,以name,x,y,apMac等參數為關鍵字分析出AP名字、x坐標、y坐標以及該AP的mac地址。
然后,將獲取到的終端數據,以clientMac,x,y,probeInfo等參數為關鍵字分析出終端mac地址、x坐標、y坐標以及該終端連接的AP的mac地址及其信號強度。其中probeInfo參數對應的數據:終端連接的AP的mac地址及其信號強度,需要進行html解碼。通過導入html 模塊,import html as ht,調用html模塊的unescape方法實現信息解碼,同時使用split函數分割出終端連接的AP的mac地址以及信號強度。
使用python flask web 框架實現數據的可視化和設備定位[2],首先將分析出來的AP名字、x坐標、y坐標以及該AP的mac地址,終端mac地址、x坐標、y坐標以及該終端連接的AP的mac地址及其信號強度等數據以json數據格式打包。前端html頁面通過java script ajax發送請求獲取AP及終端json數據。
以
運行系統,打開瀏覽器,輸入網址http://127.0.0.1∶8899/,可進入系統主頁,主頁以深圳站點N5-2F樓層拓撲圖為背景,在相應的坐標位置顯示代表AP的圖片和代表終端的圖片,以實現定位,每個AP圖片下方顯示AP的名字,每個終端圖片左上方標記接入AP的信號強度。終端設備與所接入的AP之間紅線連接。當鼠標劃過AP圖片區域時,顯示該AP詳細信息,包括AP名字,AP的MAC地址,終端接入總數,接入的終端MAC地址等;鼠標劃過終端圖片區域時,出現該終端詳細信息,包括終端的MAC地址,接入的AP名字,接入AP的MAC地址,終端所在坐標,獲得數據的時間等。以每個AP為中心,點向外擴散,模擬AP信號動態發射的效果。
本系統基于華為的集管理、控制、分析和 AI 智能功能于一體的網絡自動化與智能化云管理平臺Master NCE-Campus,通過平臺所提供的API,獲取云端數據,主要包括網絡中所部署的AP、接入的終端等信息。對獲取到的數據進行分析,提取信息。同時,基于python flask web 框架設計簡單美觀頁面,實現數據的可視化,方便查看園區網絡中部署的設備 ,接入終端的基本信息和位置,從而快速地了解網絡拓撲,以便進一步實現故障定位,網絡應用預測等工作,實現網絡自動化、智能化管理,降低網絡運維成本,提高網絡運維效率。