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