日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现实时监控_基于 Python 的交换机实时监控系统的设计与实现

發布時間:2023/11/30 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现实时监控_基于 Python 的交换机实时监控系统的设计与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從高校校園網運維工作實際出發,論文提出了一種基于 Python 語言+SNMP協議的網絡交換機監測系統設計思路與實現方法。整個系統系統采用B/S模式,基于輕量級的web開發框架web.py實現。后端采用Python編程語言實現對交換機各項數據的獲取,實時數據以 HTML 頁面的形式供系統前端訪問。

該系統一方面能協助校園網管理運維人員快速及時定位網絡交換機故障,提高了和快速反應能力和工作效率,另一方面通過對交換機性能的監控,為實現對交換機的性能調優提供數據支持。

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

傳統的網絡運維方式多為人工處置方式,判斷網絡設備問題多是依據個人經驗,存在工作效率低,不能準確定位故障,網絡恢復時間長等現象。

隨著校園網絡的不斷發展、建設,網絡應用和結構日益復雜,傳統的網絡運維方式已經無法滿足運維的要求,亟需一款通用的、可查看末端設備網絡狀態、精確定位網絡故障并可遠程快速判斷故障原因的應用系統進行支撐。

而將 Python 設計語言應用于網絡運維之中可以提高運維效率,降低運維成本。

01

關鍵技術與系統實現

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

1.1Python

Python作為使用率上升最快的面向對象編程語言,具有簡單易用、開發效率高、兼容性好、可擴展性好等特點,并且擁有功能強大、豐富的庫資源,廣泛應用于人工智能、大數據、物聯網等新型領域。本系統采用成熟穩定的Python 2.7版本實現 服務器 端程序代碼。

1.2web.py

為了便于部署和方便用戶使用,使用開源項目web.py作為系統的開發框架。

web.py 內置了web服務器,相當的小巧、簡單,歸屬于輕量級的web框架,但功能強大,而且使用起來簡單、直接。

1.3SNMP

SNMP,簡單網絡管理協議(SimpleNetwork Management Protocol),是已經投入使用的工業標準,它屬于 TCP/IP 協議中的應用層協議。SNMP 主要用于網絡設備的管理。由于 SNMP 協議簡單可靠,受到了眾多廠商的歡迎,成為了目前最為廣泛的網管協議。

SNMP協議,一般基于UDP傳輸,目前版本是v3版本,提供了認證和加密安全機制。SNMP一般主要由網絡設備、Agent和管理組件構成,其中Agent組件是網絡設備和管理組件的中間件,是駐留在網絡設備中的程序進程,它收集設備的管理信息并與管理組件交互。

SNMP對外提供了三種用于控制MIB對象的基本操作命令,它們是:Get、Set 和 Trap,可以查詢設備信息、修改設備的參數值、監控設備狀態、自動發現網絡故障、生成報告等。本系統在Ubuntu Server系統上使用Python的Pysnmp模塊部署了相應服務。

1.4MIB

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。

圖1MIB組織結構圖

1.5設計思路與系統架構

實際工作中,當某個樓宇的用戶提交報修請求時,一般先登錄該樓宇交換機,然后查看交換機上聯端口是否正常,再根據用戶的房間號查找該用戶對應的端口,并檢查端口的各種狀態信息,這個過程通過命令行實現,比較費時,結果展示不友好,工作效率低。

因此從實際工作出發,為了提高工作效率和減少故障定位時間,當某個樓宇的用戶提出報修請求時,工作人員無論在何時何地都可以直接通過瀏覽器打開系統首頁,選擇相應的樓宇,實時獲取該樓宇交換機的所有端口的詳細狀態信息,并以不同的顏色對端口狀態進行標識,同時把整個交換機的所有端口狀態都在一個頁面中展示,使得結果一目了然,信息展示清晰直觀,端口狀態對比明顯,極大的提高了故障處理效率。系統流程如圖2所示。

圖2系統流程圖

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

圖3系統架構圖

1.6重要數據與關鍵代碼

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

表1系統相關的OID列表

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

因篇幅原因,僅貼出部分代碼。

02

系統運行環境及結果展示

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

CPU: Intel Corei5-6600 CPU @ 3.9GH

RAM: 11945MiB

軟件環境為:

操作系統: Ubuntu16.04 xenial或windows2008 R2

內核: x86_64 Linux 4.4.0-154-generic

可以看出,本系統對軟硬件配置要求低,普通計算機即可承擔。 系統使用簡單,不需要對系統環境進行任何配置,只需在后臺通過一條命令即可啟動服務器端程序并綁定端口號,啟動后客戶端即可通過瀏覽器進行訪問。 系統的主頁面如圖4所示。

圖4系統主界面

首先通過以下界面提交樓宇交換機信息,如圖5所示。

圖5客戶端選擇樓宇

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

圖6系統運行界面

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

03

對比與反思

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

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

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

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

04

總結與展望

本系統通過Python與SNMP的完美結合,實現了實時獲取特定樓宇交換機啟動時間、資源使用率、端口狀態、端口流量以及端口當前下聯設備的MAC地址,展示效果清晰直觀,用戶使用簡單方便。

當有校園網用戶反映網絡問題時,管理人員根據以上數據可以實現對網絡故障進行精確定位和類型判斷,大大減輕了管理人員的工作量,縮短了故障定位時間,提高了定位精度和故障處理效率,提升了網絡服務形象、管理效率和服務水平,也極大改善了用戶的上網體驗。 通過規范化、流程化和標準化的服務,極大地提高了故障應急處理能力。

為了擴展系統功能,實現對交換機的更加高效、方便管理,下一步將增加交換機端口的遠程管理功能,同時利用python強大的數據分析和處理功能,持續獲取所管理交換機的工作狀態的實時數據,對交換機在不同時間段內的工作狀態和性能進行跟蹤,從而支持網絡管理人員校園網規劃方案和帶寬管理策略,最大限度發揮交換機的性能,提高校園網的使用效率。

同時增加端口重啟功能和交換機端口流量異常增加預警功能,配置SMTP服務器的郵件提醒和SMS短信平臺監測提醒服務,當交換機等末端設備掉電時,管理人員會收到郵件或短信通知,預判問題,爭取在終端用戶無感知的情況下盡早解決問題,更好的做好服務工作,保障校園網絡的實時暢通,為數字化校園、智慧校園、教學信息化做好支撐工作。

作者簡介 >>>

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

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

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

往期精彩

思想庫? 情報站? 動力源

熱線:010-88203306

總結

以上是生活随笔為你收集整理的python实现实时监控_基于 Python 的交换机实时监控系统的设计与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。