基於Python的交換機實時監控系統的設計與實現

2021-03-06 信息安全與通信保密雜誌社
從高校校園網運維工作實際出發,論文提出了一種基於Python語言+SNMP協議的網絡交換機監測系統設計思路與實現方法。整個系統系統採用B/S模式,基於輕量級的web開發框架web.py實現。後端採用Python程式語言實現對交換機各項數據的獲取,實時數據以HTML頁面的形式供系統前端訪問。該系統一方面能協助校園網管理運維人員快速及時定位網絡交換機故障,提高了和快速反應能力和工作效率,另一方面通過對交換機性能的監控,為實現對交換機的性能調優提供數據支持。

隨著網際網路及其應用的飛速發展,新技術不斷湧現,高校校園網作為多種網絡接入的先行試點,為數位化校園、信息化系統建設提供了契機,在一定程度上引領了網絡的發展,提升自身競爭力和對外形象。這對校園網的通暢運行也提出了更高的要求。一旦出現斷網情況,及時定位故障點和故障類型對於恢復網絡暢通尤其重要。

傳統的網絡運維方式多為人工處置方式,判斷網絡設備問題多是依據個人經驗,存在工作效率低,不能準確定位故障,網絡恢復時間長等現象。隨著校園網絡的不斷發展、建設,網絡應用和結構日益複雜,傳統的網絡運維方式已經無法滿足運維的要求,亟需一款通用的、可查看末端設備網絡狀態、精確定位網絡故障並可遠程快速判斷故障原因的應用系統進行支撐。而將 Python 設計語言應用於網絡運維之中可以提高運維效率,降低運維成本。

本系統的設計初衷即要求系統要具有跨平臺特徵、易實現、開發效率高和簡單部署,因此選擇了目前在最流行的Python語言作為實現工具。同時為了避免頻繁登錄交換機影響設備運行,通過SNMP協議來獲取交換機的各種參數數據。

Python作為使用率上升最快的面向對象程式語言,具有簡單易用、開發效率高、兼容性好、可擴展性好等特點,並且擁有功能強大、豐富的庫資源,廣泛應用於人工智慧、大數據、物聯網等新型領域。本系統採用成熟穩定的Python 2.7版本實現伺服器端程序代碼。為了便於部署和方便用戶使用,使用開源項目web.py作為系統的開發框架。web.py 內置了web伺服器,相當的小巧、簡單,歸屬於輕量級的web框架,但功能強大,而且使用起來簡單、直接。SNMP,簡單網絡管理協議(SimpleNetwork Management Protocol),是已經投入使用的工業標準,它屬於 TCP/IP 協議中的應用層協議。SNMP 主要用於網絡設備的管理。由於 SNMP 協議簡單可靠,受到了眾多廠商的歡迎,成為了目前最為廣泛的網管協議。SNMP協議,一般基於UDP傳輸,目前版本是v3版本,提供了認證和加密安全機制。SNMP一般主要由網絡設備、Agent和管理組件構成,其中Agent組件是網絡設備和管理組件的中間件,是駐留在網絡設備中的程序進程,它收集設備的管理信息並與管理組件交互。SNMP對外提供了三種用於控制MIB對象的基本操作命令,它們是:Get、Set 和 Trap,可以查詢設備信息、修改設備的參數值、監控設備狀態、自動發現網絡故障、生成報告等。本系統在Ubuntu Server系統上使用Python的Pysnmp模塊部署了相應服務。MIB庫,全稱Management Information Base,相當於資料庫。存儲了被監控設備的各種參數和狀態信息等。每個被管理的設備都需要有MIB庫的存在,我們才能對設備進行管理。MIB庫中定義了可訪問的網絡設備及其屬性,通過OID(Object IDentifier,對象標識符,唯一標識一個MIB對象),Object Identifer來區別。MIB採用分級樹形結構,結構類似於DNS,以下是結構圖:網絡設備的各個相關配置、數據等描述,均由OID來標識。通過從MIB樹的根部進行遍歷,可以獲取整個網絡設備所管理的對象的值或描述。如圖1所示,1.3.6.1.2.1就代表iso.org.dod.internet.mgmt.mib。

實際工作中,當某個樓宇的用戶提交報修請求時,一般先登錄該樓宇交換機,然後查看交換機上聯埠是否正常,再根據用戶的房間號查找該用戶對應的埠,並檢查埠的各種狀態信息,這個過程通過命令行實現,比較費時,結果展示不友好,工作效率低。因此從實際工作出發,為了提高工作效率和減少故障定位時間,當某個樓宇的用戶提出報修請求時,工作人員無論在何時何地都可以直接通過瀏覽器打開系統首頁,選擇相應的樓宇,實時獲取該樓宇交換機的所有埠的詳細狀態信息,並以不同的顏色對埠狀態進行標識,同時把整個交換機的所有埠狀態都在一個頁面中展示,使得結果一目了然,信息展示清晰直觀,埠狀態對比明顯,極大的提高了故障處理效率。系統流程如圖2所示。

本系統採用B/S結構,使用web.py作為框架。前端使用html5+CSS實現頁面效果和布局控制,後端使用Python+SNMP協議通過交換機管理IP登錄相應的交換機,實時獲取交換機的啟動時間、工作狀態等數據,生成靜態頁面推送至前端發布,用戶通過任意聯網終端使用瀏覽器即可方便實時查看所選交換機設備及埠工作狀態等數據。系統架構如圖3所示。

對交換機進行監控,主要是監控交換機的埠流量、狀態、交換機啟動時間、CPU使用率、內存狀態等,關鍵是找出與之相對應的OID。OID的獲取比較容易,一般設備廠商都有相應的文件提供下載。通過下載的MIB文件,查找出需要的狀態對應的OID,然後讀取設備的OID數據即可。本系統中訪問的設備都是銳捷的交換機,對應的OID表如表1所示。

而另外一些參數MIB中沒有直接對應的OID數據,例如埠5分鐘內吞吐量等,為了獲取這部分數據,我們使用Python的Telnetlib模塊,通過自動化腳本遠程訪問交換機,來獲取這些數據。

本系統基於Python2.7.12和Pysnmp4.2.5實現,使用web.py3.0作為web框架,硬體配置為:

CPU:Intel Corei5-6600 CPU @ 3.9GH作業系統:Ubuntu16.04 xenial或windows2008 R2內核:x86_64 Linux4.4.0-154-generic可以看出,本系統對軟硬體配置要求低,普通計算機即可承擔。系統使用簡單,不需要對系統環境進行任何配置,只需在後臺通過一條命令即可啟動伺服器端程序並綁定埠號,啟動後客戶端即可通過瀏覽器進行訪問。系統的主頁面如圖4所示。

提交之後系統實時反應,以靜態網頁的形式展示當前交換機的各種狀態信息。如圖6所示。

以筆者本單位的所有樓宇交換機為實驗對象對本系統進行了測試,結果表明,本系統都能在規定的時間內獲取到對應交換機的狀態信息,大大縮短了用戶故障的處理時間,提高了工作效率,同時根據各個埠的數據比對,對流量過大的埠上用戶及時發出預警信息,降低了設備的故障率。

目前用於網絡應用系統監控的軟體比較多,多以通用軟體的形式出現,而且大多配置複雜,跨平臺性和可移植性差,無法滿足用戶的個性化需求。而有的系統比較龐大,需要單獨佔用一臺硬體設備作為系統運行的平臺,造成資源浪費。

比如MRTG(Multi Router TrafficGrapher,MRTG),主要監控網絡鏈路流量負載,也就是只對交換機的上行埠流量進行監控,而對於其他下行狀態等參數卻無法展示給用戶。而Cacti系統雖然可以監控多種設備,但是系統龐大,安裝、配置複雜。

相當於其他功能類似的監控系統,本系統也是基於snmp協議實現對交換機的訪問,本系統的優點在於,系統實現架構簡單,文件結構清晰,軟體小巧,目前整個系統大約3MB,非常方便進行系統部署和遷移。系統基於由python和web.py實現,所以具有良好的跨平臺特徵,在windows和linux下測試都獲得成功。

同時因為系統小巧,對平臺的要求不高,不需要單獨佔用整臺伺服器資源,節省了資金費用。本系統監控整個交換機的所有上行埠和下行埠狀態和參數,且同頁顯示。更重要的是,本系統立足於實際,需求從日常的網絡維護工作中提出,目的是解決日常工作中的交換機故障,能夠滿足個性化需求,屬於定製開發,更能解決實際工作中遇到的問題。

本系統通過Python與SNMP的完美結合,實現了實時獲取特定樓宇交換機啟動時間、資源使用率、埠狀態、埠流量以及埠當前下聯設備的MAC地址,展示效果清晰直觀,用戶使用簡單方便。當有校園網用戶反映網絡問題時,管理人員根據以上數據可以實現對網絡故障進行精確定位和類型判斷,大大減輕了管理人員的工作量,縮短了故障定位時間,提高了定位精度和故障處理效率,提升了網絡服務形象、管理效率和服務水平,也極大改善了用戶的上網體驗。通過規範化、流程化和標準化的服務,極大地提高了故障應急處理能力。為了擴展系統功能,實現對交換機的更加高效、方便管理,下一步將增加交換機埠的遠程管理功能,同時利用python強大的數據分析和處理功能,持續獲取所管理交換機的工作狀態的實時數據,對交換機在不同時間段內的工作狀態和性能進行跟蹤,從而支持網絡管理人員校園網規劃方案和帶寬管理策略,最大限度發揮交換機的性能,提高校園網的使用效率。同時增加埠重啟功能和交換機埠流量異常增加預警功能,配置SMTP伺服器的郵件提醒和SMS簡訊平臺監測提醒服務,當交換機等末端設備掉電時,管理人員會收到郵件或簡訊通知,預判問題,爭取在終端用戶無感知的情況下儘早解決問題,更好的做好服務工作,保障校園網絡的實時暢通,為數位化校園、智慧校園、教學信息化做好支撐工作。

顏 偉(1972—),男,碩士,高級實驗師,主要研究方向為計算機網絡及通信技術;

張 超(1992—),男,碩士,助理實驗師,主要研究方向為機器學習,大數據。

選自《通信技術》2020年第一期 (為便於排版,已省去原文參考文獻)

相關焦點

  • 基於STC89C52和LabVIEW的溫溼度遠程監控系統設計
    摘要:為了解決無法對無人升空平臺設備艙溫溼度進行實時監控的問題,採用STC89C52單片機為控制核心,以Lab-VIEW為開發平臺,提出了無人升空平臺溫溼度遠程監控系統的設計方案。
  • 電力監控系統在安徽空管分局新橋二次雷達建設工程的設計與應用
    在監控管理系統的設計中,充分考慮了二次雷達站自身特性,以及用電系統的實際結構、電力系統的實際載荷能力等因素,進而合理的選擇管理設備,這既有利於減少系統運作的成本,同時也有利於系統功能的實現,自動化電力監控軟體需要簡單易操作且符合相關規範標準。
  • 【學術論文】基於FPGA的實時視頻圖像採集處理系統設計
    FPGA現場可編程邏輯門列,採用並行運算模式,且工作頻率較高,可對大量數據進行實時操作與處理,在通信領域、圖像處理等方面上優勢明顯[2]。因此,本設計選用FPGA作為系統的控制和數據處理中心。1 系統總體概述基於FPGA的視頻採集處理系統可分為:視頻採集模塊、圖像存儲模塊、數據處理模塊和圖像顯示模塊。
  • 用 Webhook+Python+Shell 編寫一套 Unix 類系統監控工具
    」前言告警系統是對系統監控必須掌握的技能、不管是用 zabbix、cacti 等監控平臺還是其他的監控工具,都需要有一個實時的監控與反饋機制,能讓問題、故障實時的通知到工程師的手裡,及時得到解決,以最大化的保障業務的正常。
  • 機載大屏幕顯示器高速通信系統設計
    針對此現狀,提出了一種基於MPC8548E的高速總線通信系統。該系統以MPC8548E為核心,採用PCIE總線,通過PES12T3G2交換機擴展出2個接口,連接高速航空總線模塊,實現了顯示器與其他機載設備的高速數據交互;採用RapidIO總線,通過TSI578交換機擴展出3個埠,將顯示器內部模塊組網,實現了背板總線快速通信。
  • 適用於Linux的高級實時系統監控工具
    之前,我們已經寫了許多可用於監控Linux系統性能的Linux系統監控工具,但是我們認為,大多數用戶更喜歡Linux發行版附帶的默認工具(top命令)
  • 智能鞋墊系統實現實時足底壓力分布分析 :基於可控垂直多孔介質層
    報導了一種基於此項技術設計製備的,共有24路觸覺傳感器的一體化智能可穿戴鞋墊系統,用於足底的實時動態壓力監測。    隨著科技水平和醫療能力的提高,人類壽命延長,人口出生率降低,老齡化已成為世界性難題,也是亟需面對的問題之一,因此對於疾病早期的診斷和預防愈來愈重要。
  • 你所聽過的無線監控系統圖像質量的幾大因素...
    無線監控系統在安防領域裡有了廣泛的應用,不過還是存在實時監視和圖像回放不清晰的現象,給識別、取證、事件分析帶來了一定的阻力。由此說明圖像質量是無線監控系統的重要技術指標,影響無線監控系統圖像質量的因素很多,哪些因素會影響無線監控系統圖像質量?一、攝像機本身的質量
  • 如何設計實時數據平臺(下篇)
    RTDP的敏捷之路就此展開~回顧上篇(設計篇)請戳這裡:如何設計實時數據平臺(上篇)在設計篇中,我們給出了RTDP的一個整體架構設計(圖1)。✔ Moonbox可以實時拿到數據系統的元數據並提供服務查詢✔ 對於RTDP架構來說,實時數據源和即席數據源的元數據信息可以通過調用DBus和Moonbox的RESTful服務歸集,可以基於此建設企業級元數據管理系統數據質量✔ Wormhole可以配置消息實時落入HDFS(hdfslog)。
  • 大話實時數據平臺設計(下)
    從內部角度看待設計思想:基於Storm計算引擎進行數據格式化,確保消息端到端延遲最低。數據虛擬化實現、多租戶實現,可看作是虛擬資料庫。從內部角度看待設計思想:對SQL進行解析,經過常規Catalyst處理解析流程,最終生成可下推數據系統的邏輯執行子樹進行下推計算,然後將結果拉回進行混算並返回。支持兩層Namespace:database.table,以提供虛擬資料庫體驗。
  • LineVision利用雷射雷達實現電力線監控,提升輸電網系統效能
    除了收集輸電線路的健康狀況並對異常和風險進行監測之外,LineVision V3系統的雷射雷達還將幫助優化電網容量,釋放額外的輸電能力,提升現有輸電設備的利用率,從而使更多的可再生能源發電可以接入電網。值得一提的是,該系統的實時監測將有助於提升動態線路輸送容量(DLR),這種傳輸方式下,輸電線路的電力負荷可與當前環境條件相匹配,且不會影響安全。
  • 【CV】基於python和OpenCV構建智能停車系統
    目前智能停車系統的解決方案,主要包括基於深度學習實現,以及基於重量傳感器、光傳感器實現等。本期我們將一起通過使用攝像頭和少量代碼來實現最簡單的智能停車系統。該解決方案所使用的概念非常簡單。它由具有以下兩個腳本組成:將該解決方案分成兩個腳本的原因是,避免在每次確定是否有可用停車位的時候,就進行停車位的選擇。
  • 「分布式KVM坐席管理系統」是什麼梗?
    每個節點能夠實時處理自己的信號,刷新率高達60幀/秒;系統能夠實時處理和顯示所有的信號,交互平臺可對所有信號進行集中處理,簡單方便,高效;系統擔負著智能調度指揮的重要作用,所以一旦有緊急情況發生,必須立刻調出正確的圖像視頻,並隨時進行切換及拖拉縮放的動作,便於更好的做出應急指揮。
  • 什麼是接入交換機?
    一般來說,網管型接入交換機可基於console口、Telnet、CLI和Web界面等進行管理,與此同時,也可通過網絡管理協議(SNMP)等來實現配置。而非網管型接入交換機屬於傻瓜交換機,只是單純地支持通信。若是終端設備複雜,建議使用網管型接入交換機。安全可靠性由於接入交換機位於網絡邊界,它的安全性至關重要,若是隨意就被黑客攻擊,那整個網絡都將陷入癱瘓。
  • 如何設計實時數據平臺(技術篇)
    支持基於回灌(backfill)的Kappa架構;支持基於Wormhole Job的Lambda架構2)從內部角度看待設計思想基於Spark Streaming、Flink計算引擎進行數據流上處理。Spark Streaming可支持高吞吐、批量Lookup、批量寫Sink等場景;Flink可支持低延遲、CEP規則等場景。
  • 紅外人體熱成像實時測溫系統!超溫報警!一周成交48臺!勞動密集場所必備!
    熱成像人體測溫,實現測溫,人臉識別,身份證驗證一體解決方案,高效,準確,安全,可以實時測量人體溫度,超溫報警,勞動密集型工廠工廠必備,電話,19941954110!本項目針對高溫內部組件等可視化監控困難的問題而提出,根據監測對象的結構自身特點,提出以採用紅外熱成像為基礎的非接觸式測溫技術,綜合數據採集、網絡傳輸、後端智能分析/報警為一體的紅外測溫監控系統,對監測對象進行365*24小時實時監控
  • 全面講解交換機的來龍去脈
    輕網管交換機支持iVMS-4200客戶端管理,可實現監控網絡拓撲管理、QoS、埠管理等功能。支持海康雲管APP管理,可實現埠狀態、查看拓撲圖、埠重啟等操作。級聯和堆疊是實現集群的前提,集群是級聯和堆疊的目的;級聯和堆疊是基於硬體實現的;集群是基於軟體實現的;級聯和堆疊有時很相似(尤其是級聯和虛擬堆疊),有時則差別很大(級聯和真正的堆疊)。隨著區域網和城域網的發展,上述三種技術必將得到越來越廣泛的應用。
  • 視頻監控三種存儲方式:NVR、IP-SAN和CVR
    對於監控的項目來說,需要考慮四個部分,那就是前端系統,傳輸系統,存儲系統以及顯示系統,而對於傳輸系統我們前面曾多次提到,而存儲系統是監控項目中非常重要的一部分,很多朋友也經常討論到,那麼今天我們來了解下常用的三種存儲方式NVR、IP-SAN和CVR之間的區別。第一種:NVR存儲NVR是(即網絡硬碟錄像機)的縮寫。
  • 弱電基礎知識:視頻監控系統的組成和作用,輕鬆自學監控系統,
    監控系統相信大部分的電力人員都不陌生,監控系統廣泛的應用於工廠,商場,寫字樓,家庭中,那麼監控系統是由哪些部分組成的呢?
  • 監控視頻存儲IP-SAN、CVR、與NVR哪種好?
    對於監控的項目來說,需要考慮四個部分,那就是前端系統,傳輸系統,存儲系統以及顯示系統,而對於傳輸系統我們前面曾多次提到,而存儲系統是監控項目中非常重要的一部分,今天講一下視頻圖像存儲方面的知識。IP SAN也算是SAN的一種,只是伺服器和存儲之間通過網絡交換機互聯,性能不算最好,但不受距離的限制,ip存儲應用十分廣泛,一般也可作為大型監控存儲。IP-SAN可以將存儲設備分成一個或多個卷,並導出給前端應用客戶端,客戶端計算機可以對這些導過來的卷進行新建文件系統(格式化)操作。