殷 強(qiáng),張應(yīng)忠,陸 滔,李 浩,林 放
(中國(guó)人民解放軍32037部隊(duì),云南 姚安 675300)
隨著通信業(yè)務(wù)的不斷擴(kuò)展,設(shè)備不斷增加,崗位人員的值班壓力也不斷增大,終端告警需要及時(shí)發(fā)現(xiàn),因此進(jìn)行智能化管理,開(kāi)發(fā)自動(dòng)告警系統(tǒng)顯得越發(fā)重要。
目前網(wǎng)絡(luò)管理大多采用簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP),SNMP是目前應(yīng)用最為廣泛的TCP/IP網(wǎng)管標(biāo)準(zhǔn),也是應(yīng)用最為廣泛的網(wǎng)絡(luò)管理協(xié)。該協(xié)議由國(guó)際互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,IETF)基于TCP/IP參考模型制定,是計(jì)算機(jī)網(wǎng)絡(luò)管理的標(biāo)準(zhǔn)之一[1]。設(shè)備中開(kāi)啟SNMP服務(wù),網(wǎng)絡(luò)管理員就可以遠(yuǎn)程查看設(shè)備狀態(tài),同樣也能夠在事件發(fā)生時(shí)向網(wǎng)絡(luò)管理員發(fā)出警告[2]。但對(duì)不支持SNMP協(xié)議而又需要監(jiān)視的設(shè)備,作者在現(xiàn)有查閱文獻(xiàn)中暫未發(fā)現(xiàn)對(duì)此類(lèi)問(wèn)題的研究,對(duì)此,本文利用計(jì)算機(jī)來(lái)處理數(shù)字圖像很好的解決了這一難題。
當(dāng)圖像傳輸、辦公網(wǎng)、程控等通信出現(xiàn)中斷時(shí),告警系統(tǒng)發(fā)出警報(bào),管理人員就能及時(shí)的發(fā)現(xiàn)各系統(tǒng)、各設(shè)備在運(yùn)行中出現(xiàn)的異常狀況。自動(dòng)告警系統(tǒng)通過(guò)圖像處理實(shí)現(xiàn)對(duì)不支持SNMP的設(shè)備進(jìn)行狀態(tài)監(jiān)視,同時(shí)對(duì)支持SNMP設(shè)備,監(jiān)視其端口狀態(tài)、流量信息、錯(cuò)誤等信息并實(shí)現(xiàn)主動(dòng)上報(bào)。維護(hù)人員無(wú)需逐個(gè)巡視和查看告警信息,就能及時(shí)感知、發(fā)現(xiàn)、定位故障,彌補(bǔ)人員巡查存在的工作漏洞,確保通信業(yè)務(wù)的正常運(yùn)行。
本文采用圖像處理技術(shù)與SNMP相結(jié)合的方法,開(kāi)發(fā)了通信狀態(tài)告警系統(tǒng),實(shí)現(xiàn)了對(duì)通信設(shè)備的狀態(tài)監(jiān)視,通過(guò)集中控制軟件就能及時(shí)的發(fā)現(xiàn)各設(shè)備的運(yùn)行情況。該系統(tǒng)的實(shí)現(xiàn)具有一定的現(xiàn)實(shí)意義和較高的推廣應(yīng)用價(jià)值。
本文利用電荷耦合元件(Charge-coupled Device,CCD)圖像傳感器外設(shè)方式,采集指示燈狀態(tài)信息,統(tǒng)計(jì)設(shè)備的顏色指示燈像素信息,實(shí)現(xiàn)對(duì)不支持SNMP協(xié)議通信設(shè)備的監(jiān)視;利用SNMP協(xié)議獲取設(shè)備端口信息,實(shí)現(xiàn)對(duì)支持SNMP協(xié)議的通信設(shè)備的監(jiān)視。使用上述方法,可以實(shí)現(xiàn)不對(duì)現(xiàn)有設(shè)備狀態(tài)進(jìn)行更改,從而完成一個(gè)完整的狀態(tài)告警系統(tǒng)。
本系統(tǒng)設(shè)計(jì)目標(biāo)包括:
(1)通過(guò)圖像傳感器獲取圖像信息。
(2)基于OpenCV對(duì)采集的圖像進(jìn)行處理。
(3)開(kāi)啟通信設(shè)備SNMP協(xié)議獲得端口狀態(tài)信息。
(4)設(shè)計(jì)客戶端與服務(wù)器模式,實(shí)現(xiàn)語(yǔ)音告警。
系統(tǒng)硬件部分由攝像頭、服務(wù)器、客戶端主機(jī)、網(wǎng)絡(luò)設(shè)備等組成,其結(jié)構(gòu)如圖1所示。網(wǎng)絡(luò)設(shè)備狀態(tài)的原始圖像由OpenCV調(diào)用攝像頭進(jìn)行采集獲得;SNMP開(kāi)啟后,服務(wù)器作為網(wǎng)絡(luò)管理系統(tǒng)(Network Management System,NMS)通過(guò)被管理設(shè)備Trap獲取網(wǎng)絡(luò)設(shè)備端口狀態(tài)信息。通過(guò)數(shù)字圖像處理技術(shù),服務(wù)器對(duì)獲取的原始圖像進(jìn)行處理分析,從而獲取被監(jiān)視設(shè)備狀態(tài)信息。客戶端主機(jī)用于接收遠(yuǎn)程告警信息并上報(bào),從而進(jìn)行語(yǔ)音告警輸出。
圖1 告警系統(tǒng)總體設(shè)計(jì)
軟件部分利用OpenCV強(qiáng)大的圖像處理能力和SNMP簡(jiǎn)單易配置的優(yōu)點(diǎn),采用Python、C#語(yǔ)言進(jìn)行自主開(kāi)發(fā)[3]。
系統(tǒng)各個(gè)模塊具體工作流程如圖2所示。
圖2 系統(tǒng)模塊工作流程
圖像處理模塊實(shí)現(xiàn)圖像采集、定位像素點(diǎn)位置、RGB顏色識(shí)別、異常報(bào)警等功能。
圖像采集由OpenCV庫(kù)程序調(diào)用攝像設(shè)備讀取設(shè)備完成。圖像處理的第一步是對(duì)圖像數(shù)據(jù)進(jìn)行采集。圖像采集模塊主要是以每秒15幀的幀頻(使用的攝像頭最高掃描頻率為每秒15幀)對(duì)圖像進(jìn)行提取,實(shí)時(shí)獲取設(shè)備原始狀態(tài)信息,為后續(xù)處理提供圖像。
對(duì)于像素點(diǎn)位置的獲取,由于攝像頭是固定的,圖像位置沒(méi)有移動(dòng),手動(dòng)確定該狀態(tài)指示燈的相對(duì)位置。
獲得固定位置后,通過(guò)統(tǒng)計(jì)每個(gè)指示燈圖像各像素點(diǎn)的RGB顏色分量,來(lái)判斷鏈路狀態(tài)。一個(gè)像素點(diǎn)的顏色是由RGB三個(gè)值來(lái)表現(xiàn)的[4],所以像素點(diǎn)矩陣對(duì)應(yīng)三個(gè)顏色矩陣,本文所采集的主要設(shè)備的指示燈有紅、綠、灰三種狀態(tài),對(duì)不同狀態(tài)指示燈的R、G、B三種顏色分量進(jìn)行直方圖統(tǒng)計(jì),如圖3、圖4、圖5所示。分析直方圖可知,紅燈狀態(tài)下各像素點(diǎn)紅色分量值較高,其中又以255最多,我們把這種像素點(diǎn)稱為R點(diǎn),經(jīng)過(guò)實(shí)驗(yàn)比對(duì),設(shè)置紅燈判定條件為:R點(diǎn)占總像素點(diǎn)比例大于等于30%。類(lèi)似地,綠燈狀態(tài)下各像素點(diǎn)綠色分量值較高,基本位于200以上,我們把這種像素點(diǎn)稱為G點(diǎn),由于實(shí)際光照條件下,綠燈像素偏白,經(jīng)過(guò)實(shí)驗(yàn)比對(duì),設(shè)置綠燈判定條件為:G點(diǎn)占總像素點(diǎn)比例大于等于10%。
圖3 紅色狀態(tài)燈的RGB直方圖分布
圖4 綠色狀態(tài)燈的RGB直方圖分布
圖5 灰色狀態(tài)燈的RGB直方圖分布
對(duì)像素點(diǎn)個(gè)數(shù)統(tǒng)計(jì)和顏色分量識(shí)別后就完成了告警信息統(tǒng)計(jì),若出現(xiàn)告警,則向告警輸出模塊發(fā)送告警信息。狀態(tài)獲取日志如圖6所示。
圖6 監(jiān)視狀態(tài)獲取
SNMP模塊主要用于采集被監(jiān)視端性能指標(biāo),如設(shè)備特性、數(shù)據(jù)流量(包括發(fā)送和接收)、通信超載、錯(cuò)誤等信息,實(shí)現(xiàn)在最短的時(shí)間內(nèi)發(fā)現(xiàn)故障[5]。
基于.NET平臺(tái),利用C#開(kāi)發(fā),開(kāi)發(fā)工具M(jìn)icrosoft Visual Studio 2010。同時(shí)為保障使用SNMP協(xié)議與網(wǎng)絡(luò)設(shè)備相連,必須要在防火墻設(shè)置中允許SNMP協(xié)議通過(guò)[6]。該模塊本質(zhì)上就是從被管設(shè)備上的管理信息庫(kù)(Management Information Base,MIB)取得相應(yīng)的對(duì)象標(biāo)識(shí)符(Object IDentifier,OID)對(duì)象值,圖7為MIB樹(shù)形結(jié)構(gòu)圖。
圖7 MIB樹(shù)形結(jié)構(gòu)圖
實(shí)現(xiàn)SNMP模塊需進(jìn)行網(wǎng)絡(luò)基礎(chǔ)配置及網(wǎng)絡(luò)設(shè)備MIB參數(shù)獲取,和獲取網(wǎng)絡(luò)設(shè)備屬性值[7]。
(1)網(wǎng)絡(luò)基礎(chǔ)配置
網(wǎng)絡(luò)設(shè)備開(kāi)啟中SNMP。具體步驟為:①開(kāi)啟Agent服務(wù),②配置SNMP版本,③配置NMS管理權(quán)限,④配置向SNMP Agent輸出Trap信息。
(2)獲取網(wǎng)絡(luò)設(shè)備MIB參數(shù)值
主要是通過(guò)已知的網(wǎng)絡(luò)設(shè)備管理IP和交換機(jī)的OID來(lái)查詢實(shí)現(xiàn),例如華為交換機(jī)2403系統(tǒng)時(shí)間標(biāo)識(shí)為1.3.6.1.2.1.1.3.0。但大多數(shù)時(shí)候網(wǎng)絡(luò)設(shè)備的OID信息是未知的,如何知道OID屬性值成為要點(diǎn)。一種方式是通過(guò)廠家獲取,另一種方式是通過(guò)軟件獲得。本文利用軟件GetIf來(lái)獲得,通過(guò)它可以知道當(dāng)前設(shè)備的狀況,能把網(wǎng)絡(luò)設(shè)備的OID信息、端口狀態(tài)、路由表、ARP、支持的協(xié)議以及網(wǎng)絡(luò)設(shè)備中mac-address-table中的信息都讀了出來(lái)。本軟件主要對(duì)ifOperStatus(當(dāng)前接口操作狀態(tài)),name(接口名稱),ifInOctets(接口接受到的字節(jié)),ifOutOctets(接口發(fā)送的字節(jié)),ifSpeed(接口速率)的狀態(tài)進(jìn)行獲取。
(3)獲取網(wǎng)絡(luò)設(shè)備屬性值
.NET可以通過(guò)調(diào)用SnmpSharpNet庫(kù),來(lái)獲得設(shè)備狀態(tài),通過(guò)數(shù)據(jù)分析后,設(shè)置門(mén)限。當(dāng)設(shè)備狀態(tài)出現(xiàn)異常時(shí),應(yīng)用程序?qū)⑼ㄟ^(guò)聲音、圖像變化等手段進(jìn)行報(bào)警。圖9為網(wǎng)絡(luò)監(jiān)視界面。
圖8 GetIf軟件獲取Oid值
圖9 網(wǎng)絡(luò)監(jiān)視界面
獲取網(wǎng)絡(luò)設(shè)備通知首先要在被管理的網(wǎng)絡(luò)設(shè)備上設(shè)置trap發(fā)送的目的IP地址為管理系統(tǒng)的IP地址,以及發(fā)送的端口號(hào),默認(rèn)端口號(hào)為162。管理系統(tǒng)在設(shè)置好的端口號(hào)上接收被管網(wǎng)絡(luò)設(shè)備的trap數(shù)據(jù)包,當(dāng)收到數(shù)據(jù)包時(shí),將數(shù)據(jù)包的詳細(xì)內(nèi)容以彈出對(duì)話框的形式顯示在界面上,同時(shí)進(jìn)行聲音提醒。
本文采用局域網(wǎng)模式將各機(jī)房連接,實(shí)現(xiàn)遠(yuǎn)程狀態(tài)監(jiān)視,告警采用終端、服務(wù)器模式,進(jìn)行告警輸出。如圖10所示。
告警輸出模塊通過(guò)TCP/IP協(xié)議在接收?qǐng)D像處理和SNMP模塊告警信息時(shí),通過(guò)調(diào)用Windows Sapi.spvioce自帶語(yǔ)音服務(wù),實(shí)現(xiàn)語(yǔ)音告警,并進(jìn)行告警日志記錄[8]。
圖10 告警設(shè)計(jì)
程控和網(wǎng)橋告警輸出日志如圖11所示。
圖11 告警輸出日志
本文通過(guò)利用Python語(yǔ)言和OpenCV對(duì)圖像處理的成熟技術(shù),簡(jiǎn)單、靈活、高效的完成了對(duì)通信鏈路的狀態(tài)監(jiān)視。在設(shè)備不能通過(guò)端口讀取狀態(tài)信息時(shí),可以完成對(duì)所有具有狀態(tài)指示燈設(shè)備的監(jiān)視;通過(guò)啟用網(wǎng)絡(luò)設(shè)備的SNMP,在網(wǎng)絡(luò)管理服務(wù)器上基于.NET平臺(tái)利用C#開(kāi)發(fā)了統(tǒng)一的管理系統(tǒng),通過(guò)圖像處理和SNMP協(xié)議的結(jié)合,高效完成了對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行監(jiān)視,大大提高了網(wǎng)管效率,具有較高的推廣應(yīng)用價(jià)值。