摘要:對于一些大型的復雜網絡系統,利用傳統的集中式系統監控模型進行監控和故障診斷是困難的。文章給出了一種將移動Agent技術用于系統監控的分布式系統監控模型。利用這種系統監控模型可以減少網絡數據流量,縮短系統監控與故障診斷時間。
關鍵詞:分布式;移動Agent;系統監控;監控模型
0 引言
在現有的集中式系統監控體系中,客戶端與服務器之間傳遞著大量的數據,網絡流量很大,增加了網絡擁塞的機率,嚴重的可以導致系統不能正常工作。而且對于一些不太穩定的網絡環境,在大量傳送數據的過程中,很可能出現網絡中斷,導致系統監控與診斷不能正常進行的情況。本文提出了一種基于移動Agent技術的系統監控模型,它適合一些不穩定的網絡,能減少網絡中的通信流量,縮短系統監控與診斷的時間。
1 移動Agent技術
移動Agent是一個可以攜帶代碼和狀態自主在異構網絡設備間遷移的具有自治特性的代碼或程序,它可以移動到網絡中需要進行監控的地方,利用事先賦予的智能,選取系統監控所需要的信息,并進行相應的處理。Agent在移動過程中,它的自身狀態被保存,并封裝成信息傳送到新的主機上,從而在新的主機上繼續執行,所以對于很多應用系統來說,移動Agent是一個行之有效的選擇。在客戶機服務器體系中它可以明顯改善延遲和提高網絡帶寬利用率,在網絡狀況不佳時還可以降低通信中斷的概率等。
2 基于移動Agent的系統監控模型
分布式系統監控的主要任務是監控網絡內的所有設備,并根據所采集的設備信息,采用智能的診斷方法,準確而又及時地判斷可能產生的設備故障,給出設備故障描述和快速排除故障的策略。
2.1分布式系統監控模型的各組成部分
如圖1所示,整個系統監控由兩部分組成:監控管理站和被監控站。基于分布式的系統監控采用了兩級故障診斷結構,即高級診斷部分與低級診斷部分,診斷的粒度可以達到網絡中的具體設備,如計算機、網絡交換機、路由器等,完成整個域內系統監控任務的設備則由具有監控能力的計算機承擔,從而形成一個分層次的系統監控與診斷的體系結構。
(1)被監控站系統組成
被監控站由設備數據采集模塊、SNMP Agent模塊、低級故障診斷模塊、MAEE組成。設備數據采集模塊采用專用的數據采集設備。SNMP Agent模塊則從網絡中支持SNMP協議的網絡設備共同維持的MIB中獲取這些設備及網絡狀況等的狀態信息。低級故障診斷模塊是被監控站與維護人員的接口,它對采集來的數據進行預處理,對于一些比較容易診斷的故障,給出故障提示,并指導維護人員修復故障。MAEE是移動Agent執行環境,為移動代理提供各種功能支持,包括創建、運行、傳送、接收和保護等,它為執行移動代理創造一個位置透明、便于控制、安全可靠的運行環境。

圖1 基于移動Agent的系統監控模型示意圖
被監控站的代理由移動代理MA(Mobile Agent)和常駐代理SA(stationary Agent)組成。SA可以自己激活,也可以由監控管理站的管理站代理MSA激活,它常駐被監控站,不能移動。它的主要任務是從設備數據采集模塊和SNMP Agent中獲取采集數據,將這些數據交給低級診斷模塊進行診斷,同時還要準備與MA交換數據。MA由監控管理站的MSA產生,并被派發或遷移到各個被監控站,它攜帶了MSA指示,并從SA中獲取采集數據。
(2)監控管理站系統組成
監控管理站由一個故障診斷專家系統組成。專家系統是根據人們長期的實踐經驗和大量的故障信息設計的一套智能計算機程序,用于解決復雜系統的故障診斷問題。整個故障診斷專家系統由一個高級故障診斷專家系統、知識庫、本地信息采集模塊、MAEE組成。其中高級故障診斷專家系統相當于專家系統中的推理機,此外還對整個域內故障診斷系統進行協調和管理,并實現了用戶接口。本地信息采集模塊提供了與本計算機相連的設備的數據采集功能。MAEE中的MSA負責激活被監控站的SA,產生和派發MA。數據預處理模塊是MAEE與高級診斷專家系統之間的接口,它能夠對數據進行緩沖,以協調雙方的數據同步。
2.2分布式系統監控模型的具體工作流程
首先,高級故障診斷專家系統定時地或根據用戶的指示經過MAEE的數據預處理模塊向MSA發出指令,MSA根據指令的要求,確定移動Agent的任務,同時激活各被監控站的SA。接著產生MA,并按事先約定好的遷移路徑派發出去。在被監控站,SA一旦被激活就開始采集數據,當MA到達后,SA將MA的指令和數據一并交給低級故障診斷模塊,該模塊根據指令的要求去除冗余數據,并進行故障診斷,將診斷結果和診斷不了的數據經SA交給MA。MA繼續根據遷移路徑遷移到下一個被監控站或返回到時監控管理站。最后,在監控管理站,MA返回后,將采集到的數據和部分診斷結果經數據預處理模塊交給高級診斷專家系統處理,專家系統運行推理機,并根據知識庫中的數據進行分析,給出正確的診斷結果。
3 優勢分析
3.1利用移動代理進行故障定位
如果MA在巡游路徑上發現有節點不可達,就向管理站發出信息,通知管理站有異常。因為本站之前的各站都是可達的,所以只要問題出在后端,管理站仍可以收到該消息。就算問題出在前端,此移動代理丟失,在下一次巡游中也可以定位故障發生源。管理站知道發生問題后,就利用移動代理來定位故障。
3.2對網絡中數據流量的分析
傳統的客戶/服務方式要完成一次系統故障診斷需依次向各個客戶機發出請求,系統數據流量的計算公式為:
其中,Ncs表示集中式系統中的數據流量,Nc表示采集設備的數據量,Nsnnp表示一次SNMP請求發出和響應的數據量,m表示系統中參與系統監控的計算機數量,n表示完成一輪系統監控共發送了n次SNMP請求。
基于移動Agent的系統監控在本地處理所有采集設備的數據和SNMP的數據,減少了網絡上的數據流量。其數據量計算公式為:
其中,Nagent表示基于移動Agent的系統的數據流量,Ndi表示本地系統不能處理的數據,Nsi表示本地系統已處理的數據結果,Nma表示移動Agent的本身的數據量,m同公式(1)。
從以上兩式的對比中可以看出,Nma只是移動Agent的代碼部分,代碼相對于采集的數據來說是非常少的。
3.3對系統監控中時延的分析
傳統的集中式的系統監控采用輪詢的方式,整個系統的時延見公式(3):
Tes=mTc+n(Ts+Tr)
(3)其中,Tcs表示集中式系統監控時的時延,Tc每次設備數據采集所需時間,Ts和Tr分別表示一次數據SNMP請求和響應的時延,m、n同公式(1)中的定義。
而在基于移動Agent的系統監控系統中,由于預先激活常駐代理SA,各被監控站處于實時狀態,移動代理MA在巡游進程中可以直接從SA中獲取數據,節省了等待數據采集的時延。時延的計算公式為:
Tagent=(m-1)(Tms+Tma)
(4)其中,Tagent表示利用移動Agent進行系統監控時的時延,T。是SA向MA傳送數據及MA處理數據的時間,Tma為每個MA遷移的時延,m同公式(1)。
從以上兩個式子可以看出,Tc是一個很耗時的量,而在移動Agent環境中設備數據采集是由SA在本地完成的,不存在Tc這個時延,從而大幅度減少了整個系統的時延。
4 結束語
經過以上分析可以看出:這種基于移動Agent的分布式系統監控模型,明顯地降低了網絡流量,減少了數據傳遞的時延,從而增強了整個監控系統的實時性。基于人工智能專家系統的診斷算法,也提高了故障診斷的準確性。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。