







摘 要:IP城域網網絡隱患的及時發現和解決直接關系到網絡運維工作的質量和用戶感知,為了解決現有手段對隱患挖掘診斷能力不足的問題,對現網全量采集的日志、配置、運行狀態等海量數據進行調研分析,并結合維護工作的專家經驗,開展IP城域網的隱患診斷系統研究。該系統可以挖掘網絡中存在的隱患,對重要指標、狀態輸出等進行預警推送,及時解決和修復隱患,達到優化網絡質量,提升工作效能的目標。
關鍵詞:IP城域網;日志分析;隱患挖掘;數據配置;syslog;隱患排查
中圖分類號:TP393;TN915.41 文獻標識碼:A 文章編號:2095-1302(2025)08-00-04
0 引 言
廣州城域網是廣州地區互聯網業務承載的核心網絡,存在業務量大、配置量大、邏輯復雜等特點,網絡運行的日志信息量極大、指標量多、數據復雜度極高、用戶和數據配置高度集中。IP城域網作為固定互聯網業務的核心承載網絡,網絡故障和隱患的及時發現與解決,對家集客滿意度有至關重要的影響。而隨著網絡使用場景的日益豐富,用戶對網絡運行質量提出了更高的要求,與此同時網絡復雜度和網絡配置量讓傳統的日常健康檢查和監控方式已經無法全面覆蓋全網業務的隱患情況。為此,本文通過自主研發,基于現網全量采集的日志、配置、運行狀態等海量數據,結合維護工作的專家經驗,實現了數智化挖掘網絡中存在的隱患,對重要指標、狀態輸出等進行預警推送,及時解決和修復隱患,達到優化網絡質量,提升工作效能的目標。
1 系統實現方案
1.1 總體架構設計
(1)系統總體架構分為三層:采集層、數據層和應用層。采集層通過syslog日志推送方式和SSH方式獲取設備配置及日志,并以文本方式和數據庫方式存儲。數據層對采集的數據進行定制化模型處理,最終在應用層提供直觀的數據展示。
①數據采集層主要完成數據來源的收集和整理入庫。主要采集內容包括:設備日志syslog、設備配置、指令采集。設備日志是設備當前產生的與操作相關的重要日志信息。設備自動發送日志到系統接口,系統根據場景提取關鍵信息并入庫[1]。設備配置指設備當前正在運行的配置文件,系統通過FTP定期從配置備份系統中獲取[2]。指令指標指通過第三方指令通道下發指令,由系統主動發起指標采集命令,將采集到的指標通過數據庫接口實時入庫。
②數據層是系統數據存儲模塊,主要分為文件存儲、數據表存儲。文件存儲包括自動接收的syslog、設備配置文件。數據表包括設備信息表、配置格式化存儲表、syslog解析表、指標存儲表等,為應用分析提供數據源和存儲位置。
③應用層是系統分析模塊,主要對日志、配置等進行解析、預警、核查,以及對采集的指標進行閾值的分析、判斷、預警。按照判斷規則輸出結果,并推送呈現。
(2)系統拓撲過程如下:利用云主機資源,在網管網內搭建一套日志分析平臺。網元設備配置主動發送syslog日志信息,日志采集機收集需要分析的日志信息并同步至分析服務器。分析服務器通過日志模型分析建立后臺數據,用戶可通過網調平臺呈現頁面查看實時數據[3]。
系統拓撲圖如圖1所示。
(3)主要技術
①前后端技術:后端技術使用Django框架,基于MTV(Model-Template-View)模式。模型(Model)負責業務對象和數據庫的關系映射,模板(Template)負責頁面的顯示和用戶的交互,視圖(View)負責業務邏輯并在適當的時候調用模型和模板[4]。前端使用HTML5編寫網頁內容,對應到Django模板。當用戶訪問頁面時,前端將URL參數發送給后臺視圖模塊,解析到對應的處理模塊并獲取對應模型的數據,通過模板映射到前端顯示。
②存儲模塊:存儲使用開源的MySQL數據庫。MySQL是一種關系型數據庫管理系統,它將數據保存在不同的表中,而非將所有數據放在一個大倉庫內,從而提高了速度和靈活性。MySQL使用SQL語言,這是訪問數據庫最常用的標準化語言。
③SSH模塊:SSH模塊使用開源的Paramiko庫。Paramiko是Python實現的SSHv2協議模塊,支持口令認證和公鑰認證兩種方式。它可以實現安全的遠程命令執行、文件傳輸等功能。基于Paramiko模塊,可以編寫Python代碼實現SSH相關功能[5]。
④syslog模塊:使用Linux原生日志系統Rsyslog。Rsyslog是syslogd的多線程增強版,基于syslog協議完成系統日志的處理和轉發[6]。
1.2 數據采集方案
(1)靜態數據采集模型和通道實現方案
服務器主動下載配置:通過腳本部署SSH下載任務,定時登錄設備執行指令并獲取回顯結果,以文本方式存儲于本地。
(2)動態數據采集模型和通道實現方案
服務器監聽接收日志:路由器配置syslog主動推送日志到后臺服務器。后臺服務器運行Rsyslog進程監控514端口,收到日志后直接轉存到文件,實現日志承載的動態數據采集。
采集設備狀態數據:服務器通過調用操作指令接口登錄網元設備,執行指令并保存輸出回顯結果,生成文本文件,實現狀態數據采集。
設備狀態采集通過Paramiko創建SSHClient實例,登錄設備并保存設備日志信息。同時,設備推送syslog日志到服務器。動態數據采集模型示意圖如圖2所示。
1.3 數據存儲方案
(1)數據存儲構建
數據存儲主要通過數據庫、文件兩種形式實現,具體數據對應的存儲結構見表1。
(2)數據存儲清洗解析和格式化
利用Python的PyMySQL模塊通過insert語句寫入數據庫,供模型調用分析。數據清洗和格式化示意圖如圖3所示。
2 系統功能模塊構成
2.1 日志分析模塊
日志分析模塊用于完成各類重點日志的梳理,總結告警日志種類和規則,完成日志入庫和統計分析。日志分析模塊組成示意圖如圖4所示。
(1)上聯鏈路和端口隱患分析
通過本模塊可以實時監控上聯鏈路的情況,包括鏈路中斷、鏈路/端口誤碼和弱光問題。當網元端口鏈路發生故障時,會產生“linkDown”“光功率異常”“端口CRC
誤碼”“鏈路負荷超限”等日志。分析這些日志可以實時監測網元的運行狀態。模型會統計小時內端口down的次數,也可以通過明細查看哪些端口發生過故障。
(2)網元上聯協議隱患分析
針對網元上聯的ISIS和BGP協議進行分析,實時監控網元業務中斷情況。本模塊主要針對ISIS鄰居狀態變化以及ISIS錯誤報文等日志信息進行分析。當鏈路上聯發生中斷時,會觸發ISIS協議的鏈路鄰居變化;當網元ISIS鄰居建立失敗時,會發生報文異常,系統會按小時統計并按網元中呈現[7]。BGP鄰居狀態變化通常會影響業務,因此在告警日志分析中,BGP狀態變化的日志非常少。一旦發生,需要立即處理[8]。
(3)板卡硬件隱患分析
本模塊主要分析板卡內部錯誤、板卡注冊失敗、硬件溫度異常、設備風扇故障等問題。通過統計每日的網元硬件日志,實時查看當前的日志信息。
(4)接入業務隱患分析
針對OLT接入的業務進行分析。在OLT接入的組播業務端口中,組播協議選擇主DR作為轉發組播流量的主用端口。當發生故障時,PIM鄰居中斷;如果頻繁中斷,會持續影響直播業務。在該模塊中,通過PIM鄰居狀態變化,可實時分析對直播業務的影響[9]。OLT上聯BNG網管使用SRRP協議實現主備網關接入。當主備接入的SRRP狀態均為master時,會導致OLT脫管。通過日志分析其中的“SrrpDualMaster”日志信息,可以分析接入業務的隱患[10]。
(5)重要端口隱患分析
在采集重要端口狀態時,對誤碼和流量超限等異常指標進行計算。當指標達到閾值后,系統會在前端輸出異常指標。
2.2 運行狀態檢查模塊
設備狀態指標見表2。業務狀態指標見表3。運行狀態檢查模塊組成示意圖如圖5所示。
狀態檢查模塊主要包括以下三項功能:
(1)操作值守
日常調整工作通過提前錄入值守設備信息,自動獲取設備狀態,監控網絡運行狀態,包括日志分析和設備狀態監控。對于異常結果,系統會在前端顯示。操作值守子功能包括鏈路擴容、板卡擴容和地址池擴容。
(2)通信保障
針對節假日等通信保障場景,設置重點保障網元,對網元的鏈路狀態、地址池利用率和端口利用率進行監控。
(3)業務割接支撐
針對日常業務PON割接提供數據支撐,包括自動配置腳本、業務上線數量檢查、導入業務相關信息等。后臺采集設備信息,根據信息自動生成腳本數據,為用戶提供業務配置支持。
設備狀態采集通過Paramiko創建SSHClient實例,登錄設備并保存設備日志信息。采集后的數據經過整理,利用Python的PyMySQL模塊通過insert語句寫入數據庫,供模型調用分析。
2.3 數據隱患排查模塊
廣州城域網設備較多,為避免在設備下載配置文件時造成高負荷,本文采用從配置備份服務器自動FTP下載配置文件到本地的方案,并對配置文件的完整性進行校驗。對于不完整的文件,系統會從原始設備重新采集,確保每臺設備的配置完整。這為后期的文件分析和解析提供了完整可用的數據,同時為設備故障時的配置恢復提供了保障。數據隱患排查模塊組成示意圖如圖6所示。
(1)全局基礎配置
該功能對設備的基本信息進行采集和分析,如分析網元命名是否規范、系統版本是否發生變化、系統同步時鐘配置是否正確、登錄設備是否有安全策略,以保障設備的基礎信息正確無誤。
(2)路由配置
通過解析設備路由協議的配置,生成規范化的格式,并將數據存入數據庫中。例如,啟動路由協議的端口、路由協議配置參數是否全網一致等信息都可以被存儲。
(3)ACL配置
ACL是設備承載業務的控制策略,直接影響業務感知,通用型ACL配置應該全網一致,若缺少設備,將會影響業務,該功能將ACL進行統計分析,查找缺少的設備并輸出。
3 結 語
本文提出了一套進行城域網隱患的系統化挖掘方法模型,涵蓋數據配置、運行狀態、日志信息、指標呈現等內容,填補IP城域網網元日志分析的空白。另外,對于自動恢復類、無投訴無告警的故障實現微觀定位和分析,以提升網絡運維的全面性和精細化程度。
參考文獻
[1]王曉文. syslog在網絡管理中的應用[J].電信快報,2005(6):7-10.
[2]石進.巧用SecureCRT腳本實現網絡設備配置備份自動化[J].有線電視技術,2011,18(3):57-58.
[3]王力群,黃必棟.基于日志分析平臺的監控系統的設計與實現[J].計算機應用與軟件,2017,34(12):158-162.
[4]楊洪濤.基于Django的MVC框架設計與實現[J].電腦知識與技術,2023,19(4):62-65.
[5]王冀. Python在智能化運維中的實踐[J].廣播電視網絡,2021,28(5):112-115.
[6]朱曉亮,陳云芳,陸有為.基于Rsyslog系統日志的收集與分析[J].網絡安全技術與應用,2012(12):5-7.
[7]彭比飛. 基于ISIS協議的IP承載網路由方案設計與實現[D].武漢:華中科技大學,2014.
[8]蔣磊. BGP路由協議的基本原理分析[J].江蘇科技信息,2018,35(31):35-37.
[9]蔡智慧,彭皓,夏東朝.大規模組播網絡故障探究[J].軟件導刊,2017,16(1):147-148.
[10]吳元生,魏五洲.雙主振蕩在網鏈構建中的問題分析與解決[J].信息記錄材料,2022,23(8):201-203.