摘 要:隨著信息化技術的不斷發(fā)展,互聯(lián)網(wǎng)也越來越普及,網(wǎng)絡設備的運行狀態(tài)的好壞直接影響到整個網(wǎng)絡的質(zhì)量。網(wǎng)絡設備管理人員需要登陸到每個網(wǎng)絡設備上查看問題的原因,這樣的管理方式很慢,也不容易找到問題的根源。如何將抽象的網(wǎng)絡數(shù)據(jù)通過程序取出并顯示在web頁面上成為網(wǎng)絡管理員的一種迫切的需要。還好在每個可管理的設備上都有一種snmp協(xié)議能夠完成整個艱巨的任務,snmp協(xié)議可以通過管理信息庫中相應內(nèi)容獲得設備的各方面運行信息。
關鍵詞:snmp網(wǎng)絡協(xié)議;流量監(jiān)控;系統(tǒng)
基于snmp網(wǎng)絡協(xié)議的網(wǎng)絡流量監(jiān)控系統(tǒng)是將各網(wǎng)絡設備各端口的上下行流量匯總到一個數(shù)據(jù)庫中,通過web方式展現(xiàn)給用戶的系統(tǒng)。整個系統(tǒng)主要包括網(wǎng)絡邏輯拓撲生成模塊、網(wǎng)絡設備鏈路流量監(jiān)控模塊、圖形展現(xiàn)模塊、短信告警模塊組成。首先,通過網(wǎng)絡邏輯拓撲生成模塊將現(xiàn)有網(wǎng)絡設備的網(wǎng)絡鏈接數(shù)據(jù)添加到設備數(shù)據(jù)表中,生成網(wǎng)絡設備的邏輯拓撲,然后,網(wǎng)絡設備鏈路流量監(jiān)控模塊通過設備DB判別網(wǎng)絡設備的類型,如果是網(wǎng)絡設備通過SNMP協(xié)議采集網(wǎng)絡設備的各端口流量;如果是服務器網(wǎng)絡設備通過SNMP協(xié)議采集服務器的硬盤容量、內(nèi)存使用量、運行軟件名稱等數(shù)據(jù),將采集的數(shù)據(jù)些入到采集數(shù)據(jù)表中。如果沒有采集到網(wǎng)絡設備和服務器的數(shù)據(jù),將設備名稱寫入到ERR表(錯誤表)中,短信告警模塊每間隔10分鐘掃描一次ERR表,有故障網(wǎng)絡設備就告警。最后,當有用戶請求查看網(wǎng)絡設備各端口狀態(tài)時,圖形展現(xiàn)模塊從采集數(shù)據(jù)表中查詢到相應網(wǎng)絡設備的原始數(shù)據(jù),通過邏輯算法將原始數(shù)據(jù)計算成真實的端口流量數(shù)據(jù),再通過調(diào)用圖形展現(xiàn)程序生成圖形,將結果輸出到用戶WEB頁面上。(圖1)
圖1
具體實施方式:
第一步:安裝win2003系統(tǒng)。
第二步:安裝IIS組建,搭建win系統(tǒng)的php頁面環(huán)境,安裝MS sql2000數(shù)據(jù)庫。
第三步:開啟本端服務器的161,160端口(關閉防火墻,默認開啟),啟用各被監(jiān)控網(wǎng)絡設備的SNMP協(xié)議,并將各網(wǎng)絡設備的讀寫字符串匯總并記錄。
第四步:使用一種web語言編寫完成自己的網(wǎng)絡邏輯拓撲生成模塊和圖形展現(xiàn)模塊。
第五步:使用php編寫數(shù)據(jù)采集模塊和告警模塊。
網(wǎng)絡拓撲模塊編程的難點是需要寫一個迭代函數(shù),這樣在出現(xiàn)樹形網(wǎng)絡拓撲的時候才能使整個程序簡單并且高效。圖形的展現(xiàn)模塊是整個系統(tǒng)的難點,如何將整個原始數(shù)據(jù)圖形展現(xiàn)到web頁面上不僅要考驗自己對網(wǎng)絡數(shù)據(jù)bit和字節(jié)的換算能力,還要考驗自己如何將處理后的數(shù)據(jù)圖形化到自己的頁面上,圖形化的頁面上的方式很多:flash方式、插件、web自帶圖形功能。任何一種圖形化的展現(xiàn)都是非常困難的。然后就是數(shù)據(jù)采集過程模塊,如何在一分鐘內(nèi)將多個設備的多個端口的數(shù)據(jù)寫入到自己的數(shù)據(jù)庫中依然是個難題,當然你可以通過多線程完成這樣的任務,數(shù)據(jù)采集到后你會發(fā)現(xiàn)你的數(shù)據(jù)庫膨脹的相當快速,大數(shù)據(jù)量快速查詢又成為一個頭痛的問題。解決了上面的幾個主要問題后,短信的告警問題才真的成為了可能。
圖形展現(xiàn)模塊的設計:(圖2,圖3)
出/入流量:當選擇出流量時,頁面中展現(xiàn)的是本網(wǎng)絡設備各個端口的出流量。當選擇入流量時,頁面中展現(xiàn)的是本網(wǎng)絡設備各個端口的入流量。(出入是相對本網(wǎng)絡設備而言,流出本網(wǎng)絡設備的量為出,流入本設備的量為入)。
開始端口、結束端口:本網(wǎng)絡設備的第一個端口,包括本網(wǎng)絡設備中的邏輯端口(如:在高級路由器中的邏輯vlan3、vlan4等)。也可顯示本網(wǎng)絡設備的邏輯端口流量。
采集頻率:這個是抽?。ú樵儯┝舜鎯υ跀?shù)據(jù)表中本網(wǎng)絡設備在不同時間段(5分鐘、10分鐘、15分鐘、30分鐘、1小時、2小時)各端口流量頻率,相當于對數(shù)據(jù)表中數(shù)據(jù)的采樣數(shù)據(jù)。
最大帶寬:顯示了本網(wǎng)絡設備各個端口中實際最大帶寬(4/3)的黃金分割帶寬,目的是為了不讓實際最大帶寬顯示出來后頂在了設備流量圖最頂端,影響展現(xiàn)效果。最大帶寬可以手動輸入,當輸入的數(shù)值小于本網(wǎng)絡設備各個端口中實際最大帶寬時,自動修改為最大帶寬;當輸入的數(shù)值大于本網(wǎng)絡設備各端口中實際最大帶寬時,按照輸入數(shù)值從新展現(xiàn)設備流量圖。
查詢天數(shù):查詢天數(shù)默認是可以查詢1-365天以內(nèi)的所有數(shù)據(jù),但是根據(jù)服務器的性能,顯示大數(shù)據(jù)量時數(shù)據(jù)可能會溢出。建議數(shù)據(jù)在30天以內(nèi)。
網(wǎng)絡設備流量圖:端口流量的折線圖,一次用戶請求,只能展現(xiàn)網(wǎng)絡設備各端口的上行流量或下行流量。
各端口名稱:從網(wǎng)絡設備上的采集到的端口名稱。
短信告警模塊的設計:
使用php語言編寫實現(xiàn),根據(jù)網(wǎng)絡設備鏈路流量監(jiān)控模塊的處理機制,將沒有回應的網(wǎng)絡設備的名稱和時間寫入到ERR表(錯誤表)中,php編寫的輪詢程序每10分鐘查詢一次當前10分鐘內(nèi)超過錯誤閥值的網(wǎng)絡設備,如果不為空就向短信告警裝置發(fā)送告警信息。
本系統(tǒng)能夠為我們?nèi)找嬖鲩L的網(wǎng)絡帶寬提供實際的圖形顯示;為大型網(wǎng)絡的用戶提供網(wǎng)絡設備監(jiān)控及記錄網(wǎng)絡設備端口、主機網(wǎng)卡流量;為提供高效穩(wěn)定的網(wǎng)絡環(huán)境提供幫助。
作者簡介:賀軍(1977,11-),男,湖北丹江口人,助理工程師,研究方向:計算機軟件,網(wǎng)絡安全。