黃海攀,張 英,張勇慧,高 源,王淼淼
(中國移動通信集團(tuán)山東有限公司 濟(jì)寧分公司,山東 濟(jì)寧 272000)
電信運(yùn)營商網(wǎng)際互連協(xié)議(Internet Protocol,IP)城域網(wǎng)是一個城市范圍內(nèi)的業(yè)務(wù)接入控制點(diǎn),如業(yè)務(wù)路由器和寬帶接入服務(wù)器(Broadband Remote Access Server,BRAS)及3層設(shè)備組成的3層路由網(wǎng)絡(luò)。IP城域網(wǎng)在網(wǎng)絡(luò)層次上包括核心層、業(yè)務(wù)接入控制層及匯聚層。業(yè)務(wù)接入控制層路由器部署至城市內(nèi)全部區(qū)縣,主要負(fù)責(zé)本區(qū)域內(nèi)的家庭寬帶用戶、交互式網(wǎng)絡(luò)電視用戶、集團(tuán)客戶互聯(lián)網(wǎng)專線等用戶的業(yè)務(wù)接入。匯聚層由業(yè)務(wù)接入控制層以下的匯聚交換機(jī)組成,匯聚交換機(jī)覆蓋全部區(qū)縣,負(fù)責(zé)本區(qū)域內(nèi)的業(yè)務(wù)接入。城市所管轄的區(qū)縣數(shù)量多,其對應(yīng)的IP城域網(wǎng)寬帶接入服務(wù)器及匯聚交換機(jī)設(shè)備數(shù)量大。目前,電信運(yùn)營商有多種平臺、多種方式獲取到設(shè)備性能,但維護(hù)人員日常運(yùn)維需要更便捷、更直觀的技術(shù)手段獲取設(shè)備各類性能指標(biāo),并對指標(biāo)進(jìn)行分析預(yù)警[1,2]。基于以上背景,探索實(shí)踐一種IP城域網(wǎng)的設(shè)備性能監(jiān)控系統(tǒng),實(shí)現(xiàn)各類性能指標(biāo)統(tǒng)計(jì)分析,主動預(yù)警并通知維護(hù)人員處理。
IP城域網(wǎng)為城市內(nèi)個人家庭用戶和政企客戶提供綜合業(yè)務(wù)的接入與承載服務(wù)。對網(wǎng)絡(luò)設(shè)備開展智能運(yùn)維,監(jiān)控網(wǎng)絡(luò)設(shè)備性能指標(biāo),發(fā)現(xiàn)并及時處理重要告警以及潛在隱患成為保障城域網(wǎng)健壯性的關(guān)鍵,也是電信運(yùn)營商提升用戶滿意度的基礎(chǔ)[3]。目前,城域網(wǎng)設(shè)備運(yùn)維存在以下幾個問題:一是隨著城域網(wǎng)網(wǎng)絡(luò)規(guī)模的擴(kuò)大,網(wǎng)絡(luò)設(shè)備不斷增加,人工開展運(yùn)維工作繁雜;二是獲取網(wǎng)絡(luò)設(shè)備性能、設(shè)備能力負(fù)荷、鏈路質(zhì)量、鏈路狀態(tài)等故障時效性性差;三是網(wǎng)管采集性能指標(biāo)開放性不夠,僅支持運(yùn)營商內(nèi)部網(wǎng)絡(luò)登錄查看,無法實(shí)現(xiàn)多終端隨時查看。
網(wǎng)絡(luò)設(shè)備性能監(jiān)控系統(tǒng)是基于Python語言,通過應(yīng)用程序接口(Application Programming Interface,API)調(diào)用運(yùn)營商網(wǎng)管系統(tǒng),結(jié)合應(yīng)用部署和運(yùn)行平臺(Application Platform as a Service,APaaS),實(shí)現(xiàn)對網(wǎng)絡(luò)設(shè)備的各類性能指標(biāo)統(tǒng)計(jì)匯總、分析預(yù)警。
IP城域網(wǎng)設(shè)備性能監(jiān)控系統(tǒng)主要分為4個模塊,分別為數(shù)據(jù)采集模塊、數(shù)據(jù)分析模塊、數(shù)據(jù)存儲模塊以及指標(biāo)預(yù)警模塊,如圖1所示。
圖1 設(shè)備性能監(jiān)控系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
1.2.1 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊分為2個部分,一是利用Python語言編程實(shí)現(xiàn)多線程自動登錄設(shè)備采集性能指標(biāo),二是通過API接口獲取網(wǎng)管系統(tǒng)內(nèi)設(shè)備性能指標(biāo)。設(shè)備性能指標(biāo)包括設(shè)備端口收發(fā)光功率、端口錯誤包數(shù)量、BRAS單板用戶數(shù)、成對BRAS上行流量、高負(fù)荷鏈路、運(yùn)營商級NAT(Carrier-grade NAT,CGN)單板利用率以及異常告警等。
(1)自動登錄設(shè)備采集性能指標(biāo),通過Python庫文件Paramiko實(shí)現(xiàn)[4]。Paramiko是通過Python實(shí)現(xiàn)安全外殼(Secure Shell,SSH)協(xié)議的模塊,主要用于遠(yuǎn)程控制。它可以通過SSH協(xié)議實(shí)現(xiàn)對遠(yuǎn)程網(wǎng)絡(luò)設(shè)備執(zhí)行命令操作,并返回交互結(jié)果。通過Python自帶的庫文件concurrent實(shí)現(xiàn)多線程登錄設(shè)備。多線程可實(shí)現(xiàn)同一個程序同時處理多個設(shè)備的數(shù)據(jù)采集任務(wù),多個任務(wù)相互獨(dú)立,不會發(fā)生相互阻塞的情況。面對網(wǎng)絡(luò)設(shè)備數(shù)量較多情況,能夠有效提高設(shè)備性能指標(biāo)采集的效率。主要代碼為
self.sshClient.connect(host_ip, host_port, username,pwd, look_for_keys=False)
(2)網(wǎng)管系統(tǒng)獲取性能指標(biāo)。通過運(yùn)營商內(nèi)部網(wǎng)管系統(tǒng)開放的API接口,獲取數(shù)據(jù)網(wǎng)管平臺已采集的高負(fù)荷鏈路等指標(biāo)。
1.2.2 數(shù)據(jù)分析模塊
數(shù)據(jù)分析模塊分為2個部分。
(1)對登錄設(shè)備采集到的指標(biāo)進(jìn)行提取分析,主要通過Python中的正則表達(dá)式(re模塊)匹配處理字符串,利用re模塊中的split、findall、compile等函數(shù)有效提取采集結(jié)果中的BRAS的域地址池利用率、端口收發(fā)光功率以及CGN單板利用率等性能指標(biāo)[5,6]。通過Pandas模塊實(shí)現(xiàn)指標(biāo)的分析處理,Pandas中的DataFrame是一種表格型的數(shù)據(jù)結(jié)構(gòu),具備行索引(index)、列索引(columns),且每列可存儲不同的值類型(數(shù)值、字符串等),可將同一性能指標(biāo)、不同BRAS的數(shù)據(jù)匯總統(tǒng)計(jì)成二維數(shù)組[7]。
(2)對從數(shù)據(jù)網(wǎng)管中獲取的指標(biāo)進(jìn)行統(tǒng)計(jì)分析,通過APaaS平臺中的工作流結(jié)合代碼塊節(jié)點(diǎn)實(shí)現(xiàn)性能數(shù)據(jù)的自動增加、刪除、查詢、修改、統(tǒng)計(jì)以及分析。
1.2.3 數(shù)據(jù)存儲模塊
IP城域網(wǎng)設(shè)備性能監(jiān)控系統(tǒng)部署于APaaS平臺,APaaS平臺為運(yùn)營商提供了一個開發(fā)、部署和管理應(yīng)用程序的平臺。系統(tǒng)利用Python內(nèi)置的request模塊,向APaaS平臺發(fā)送POST請求,將采集到的設(shè)備性能指標(biāo)上傳至平臺;設(shè)備性能指標(biāo)數(shù)據(jù)存儲在APaaS平臺工作表單中;平臺中自定義模塊可自主創(chuàng)建各類統(tǒng)計(jì)圖用于展示不同性能指標(biāo)情況。
1.2.4 指標(biāo)預(yù)警模塊
指標(biāo)預(yù)警模塊通過APaaS平臺自定義工作流實(shí)現(xiàn)。當(dāng)某性能指標(biāo)高于設(shè)定的閾值時觸發(fā)工作流,自動提取所有超閾值的指標(biāo),并進(jìn)行分類匯總。根據(jù)設(shè)備名稱判斷設(shè)備歸屬維護(hù)部門,最后通過手機(jī)短信或郵件方式實(shí)現(xiàn)超閾值指標(biāo)自動化預(yù)警。郵件預(yù)警方式首先通過Python代碼塊處理設(shè)備性能指標(biāo)數(shù)據(jù),將其拼接成超文本標(biāo)記語言(Hyper Text Markup Language,HTML)代碼。HTML是一種建立網(wǎng)頁文件的標(biāo)記語言,可以展示文字、圖片、聲音以及影片等多種類型的內(nèi)容。鑒于設(shè)備指標(biāo)展現(xiàn)多為表格形式,通過for循環(huán)將指標(biāo)數(shù)據(jù)插入至HTML表格。指標(biāo)預(yù)警模塊通過運(yùn)營商內(nèi)部郵箱系統(tǒng)的API接口,將指標(biāo)預(yù)警內(nèi)容發(fā)送給設(shè)備維護(hù)部門。
IP城域網(wǎng)設(shè)備性能監(jiān)控系統(tǒng)功能包括以下幾點(diǎn)。
(1)對業(yè)務(wù)地址池、CGN單板利用率、設(shè)備鏈路利用率以及質(zhì)量等客戶行為敏感的指標(biāo)負(fù)荷情況及時監(jiān)控[8,9]。該系統(tǒng)無需人工介入,每日08:00前將網(wǎng)絡(luò)設(shè)備各類指標(biāo)情況發(fā)送至維護(hù)人員郵箱。發(fā)送預(yù)警郵件如圖2所示。
圖2 預(yù)警郵件
(2)通過留存設(shè)備鏈路狀態(tài)、系統(tǒng)負(fù)荷、硬件狀態(tài)等網(wǎng)絡(luò)運(yùn)行歷史信息,開展自動化統(tǒng)計(jì)分析,指導(dǎo)維護(hù)人員開展網(wǎng)絡(luò)設(shè)備升級擴(kuò)容、優(yōu)化調(diào)整等工作,有效提高工作效率,避免人為疏忽造成網(wǎng)絡(luò)擁塞,提升網(wǎng)絡(luò)維護(hù)水平,保障網(wǎng)絡(luò)服務(wù)質(zhì)量[10]。將城域網(wǎng)設(shè)備運(yùn)行狀態(tài)匯總,通過APaaS平臺實(shí)時展現(xiàn),如圖3所示。根據(jù)業(yè)務(wù)地址池利用率、CGN單板利用率等情況,開展割接擴(kuò)容工作。依據(jù)地市IPTV節(jié)點(diǎn)春節(jié)期間峰值流量增長情況,指導(dǎo)年度擴(kuò)容規(guī)模。
圖3 網(wǎng)絡(luò)設(shè)備運(yùn)行匯總
(3)城域網(wǎng)設(shè)備性能監(jiān)控系統(tǒng)可支持內(nèi)網(wǎng)環(huán)境、外網(wǎng)環(huán)境訪問,支持iOS客戶端、Android客戶端、Windows客戶端以及MacOS客戶端等多終端顯示。系統(tǒng)在移動終端Windows客戶端呈現(xiàn)情況如圖4所示。
圖4 移動終端及Window客戶端系統(tǒng)呈現(xiàn)
(4)本系統(tǒng)借助Python編程及APaaS平臺可實(shí)現(xiàn)內(nèi)部功能不斷迭代優(yōu)化,可移植性強(qiáng),方便定制化開發(fā)[10]。
IP城域網(wǎng)作為城市內(nèi)互聯(lián)網(wǎng)業(yè)務(wù)的基礎(chǔ)網(wǎng)絡(luò),其發(fā)生故障的影響范圍大、風(fēng)險高,須確保城域網(wǎng)設(shè)備穩(wěn)定運(yùn)行。對城域網(wǎng)設(shè)備開展智能化運(yùn)維,監(jiān)控城域網(wǎng)設(shè)備性能指標(biāo),定期開展隱患排查整治是電信運(yùn)營商做好網(wǎng)絡(luò)通信保障的基礎(chǔ)。本文從性能采集模塊、分析模塊、存儲模塊以及預(yù)警模塊介紹了城域網(wǎng)設(shè)備性能監(jiān)控系統(tǒng)的設(shè)計(jì)方案,并通過實(shí)際的應(yīng)用成果進(jìn)行展示。本成果利用Python語言及APaaS平臺,不僅有效整合了運(yùn)營商內(nèi)部數(shù)據(jù)網(wǎng)管繁雜的數(shù)據(jù)報表,而且根據(jù)運(yùn)維需求定制全新的設(shè)備性能指標(biāo)報表,有效提升網(wǎng)絡(luò)設(shè)備運(yùn)維的工作效率。