摘要:對于一些大型的復(fù)雜網(wǎng)絡(luò)系統(tǒng),利用傳統(tǒng)的集中式系統(tǒng)監(jiān)控模型進行監(jiān)控和故障診斷是困難的。文章給出了一種將移動Agent技術(shù)用于系統(tǒng)監(jiān)控的分布式系統(tǒng)監(jiān)控模型。利用這種系統(tǒng)監(jiān)控模型可以減少網(wǎng)絡(luò)數(shù)據(jù)流量,縮短系統(tǒng)監(jiān)控與故障診斷時間。
關(guān)鍵詞:分布式;移動Agent;系統(tǒng)監(jiān)控;監(jiān)控模型
0 引言
在現(xiàn)有的集中式系統(tǒng)監(jiān)控體系中,客戶端與服務(wù)器之間傳遞著大量的數(shù)據(jù),網(wǎng)絡(luò)流量很大,增加了網(wǎng)絡(luò)擁塞的機率,嚴(yán)重的可以導(dǎo)致系統(tǒng)不能正常工作。而且對于一些不太穩(wěn)定的網(wǎng)絡(luò)環(huán)境,在大量傳送數(shù)據(jù)的過程中,很可能出現(xiàn)網(wǎng)絡(luò)中斷,導(dǎo)致系統(tǒng)監(jiān)控與診斷不能正常進行的情況。本文提出了一種基于移動Agent技術(shù)的系統(tǒng)監(jiān)控模型,它適合一些不穩(wěn)定的網(wǎng)絡(luò),能減少網(wǎng)絡(luò)中的通信流量,縮短系統(tǒng)監(jiān)控與診斷的時間。
1 移動Agent技術(shù)
移動Agent是一個可以攜帶代碼和狀態(tài)自主在異構(gòu)網(wǎng)絡(luò)設(shè)備間遷移的具有自治特性的代碼或程序,它可以移動到網(wǎng)絡(luò)中需要進行監(jiān)控的地方,利用事先賦予的智能,選取系統(tǒng)監(jiān)控所需要的信息,并進行相應(yīng)的處理。Agent在移動過程中,它的自身狀態(tài)被保存,并封裝成信息傳送到新的主機上,從而在新的主機上繼續(xù)執(zhí)行,所以對于很多應(yīng)用系統(tǒng)來說,移動Agent是一個行之有效的選擇。在客戶機服務(wù)器體系中它可以明顯改善延遲和提高網(wǎng)絡(luò)帶寬利用率,在網(wǎng)絡(luò)狀況不佳時還可以降低通信中斷的概率等。
2 基于移動Agent的系統(tǒng)監(jiān)控模型
分布式系統(tǒng)監(jiān)控的主要任務(wù)是監(jiān)控網(wǎng)絡(luò)內(nèi)的所有設(shè)備,并根據(jù)所采集的設(shè)備信息,采用智能的診斷方法,準(zhǔn)確而又及時地判斷可能產(chǎn)生的設(shè)備故障,給出設(shè)備故障描述和快速排除故障的策略。
2.1分布式系統(tǒng)監(jiān)控模型的各組成部分
如圖1所示,整個系統(tǒng)監(jiān)控由兩部分組成:監(jiān)控管理站和被監(jiān)控站。基于分布式的系統(tǒng)監(jiān)控采用了兩級故障診斷結(jié)構(gòu),即高級診斷部分與低級診斷部分,診斷的粒度可以達到網(wǎng)絡(luò)中的具體設(shè)備,如計算機、網(wǎng)絡(luò)交換機、路由器等,完成整個域內(nèi)系統(tǒng)監(jiān)控任務(wù)的設(shè)備則由具有監(jiān)控能力的計算機承擔(dān),從而形成一個分層次的系統(tǒng)監(jiān)控與診斷的體系結(jié)構(gòu)。
(1)被監(jiān)控站系統(tǒng)組成
被監(jiān)控站由設(shè)備數(shù)據(jù)采集模塊、SNMP Agent模塊、低級故障診斷模塊、MAEE組成。設(shè)備數(shù)據(jù)采集模塊采用專用的數(shù)據(jù)采集設(shè)備。SNMP Agent模塊則從網(wǎng)絡(luò)中支持SNMP協(xié)議的網(wǎng)絡(luò)設(shè)備共同維持的MIB中獲取這些設(shè)備及網(wǎng)絡(luò)狀況等的狀態(tài)信息。低級故障診斷模塊是被監(jiān)控站與維護人員的接口,它對采集來的數(shù)據(jù)進行預(yù)處理,對于一些比較容易診斷的故障,給出故障提示,并指導(dǎo)維護人員修復(fù)故障。MAEE是移動Agent執(zhí)行環(huán)境,為移動代理提供各種功能支持,包括創(chuàng)建、運行、傳送、接收和保護等,它為執(zhí)行移動代理創(chuàng)造一個位置透明、便于控制、安全可靠的運行環(huán)境。
圖1 基于移動Agent的系統(tǒng)監(jiān)控模型示意圖
被監(jiān)控站的代理由移動代理MA(Mobile Agent)和常駐代理SA(stationary Agent)組成。SA可以自己激活,也可以由監(jiān)控管理站的管理站代理MSA激活,它常駐被監(jiān)控站,不能移動。它的主要任務(wù)是從設(shè)備數(shù)據(jù)采集模塊和SNMP Agent中獲取采集數(shù)據(jù),將這些數(shù)據(jù)交給低級診斷模塊進行診斷,同時還要準(zhǔn)備與MA交換數(shù)據(jù)。MA由監(jiān)控管理站的MSA產(chǎn)生,并被派發(fā)或遷移到各個被監(jiān)控站,它攜帶了MSA指示,并從SA中獲取采集數(shù)據(jù)。
(2)監(jiān)控管理站系統(tǒng)組成
監(jiān)控管理站由一個故障診斷專家系統(tǒng)組成。專家系統(tǒng)是根據(jù)人們長期的實踐經(jīng)驗和大量的故障信息設(shè)計的一套智能計算機程序,用于解決復(fù)雜系統(tǒng)的故障診斷問題。整個故障診斷專家系統(tǒng)由一個高級故障診斷專家系統(tǒng)、知識庫、本地信息采集模塊、MAEE組成。其中高級故障診斷專家系統(tǒng)相當(dāng)于專家系統(tǒng)中的推理機,此外還對整個域內(nèi)故障診斷系統(tǒng)進行協(xié)調(diào)和管理,并實現(xiàn)了用戶接口。本地信息采集模塊提供了與本計算機相連的設(shè)備的數(shù)據(jù)采集功能。MAEE中的MSA負(fù)責(zé)激活被監(jiān)控站的SA,產(chǎn)生和派發(fā)MA。數(shù)據(jù)預(yù)處理模塊是MAEE與高級診斷專家系統(tǒng)之間的接口,它能夠?qū)?shù)據(jù)進行緩沖,以協(xié)調(diào)雙方的數(shù)據(jù)同步。
2.2分布式系統(tǒng)監(jiān)控模型的具體工作流程
首先,高級故障診斷專家系統(tǒng)定時地或根據(jù)用戶的指示經(jīng)過MAEE的數(shù)據(jù)預(yù)處理模塊向MSA發(fā)出指令,MSA根據(jù)指令的要求,確定移動Agent的任務(wù),同時激活各被監(jiān)控站的SA。接著產(chǎn)生MA,并按事先約定好的遷移路徑派發(fā)出去。在被監(jiān)控站,SA一旦被激活就開始采集數(shù)據(jù),當(dāng)MA到達后,SA將MA的指令和數(shù)據(jù)一并交給低級故障診斷模塊,該模塊根據(jù)指令的要求去除冗余數(shù)據(jù),并進行故障診斷,將診斷結(jié)果和診斷不了的數(shù)據(jù)經(jīng)SA交給MA。MA繼續(xù)根據(jù)遷移路徑遷移到下一個被監(jiān)控站或返回到時監(jiān)控管理站。最后,在監(jiān)控管理站,MA返回后,將采集到的數(shù)據(jù)和部分診斷結(jié)果經(jīng)數(shù)據(jù)預(yù)處理模塊交給高級診斷專家系統(tǒng)處理,專家系統(tǒng)運行推理機,并根據(jù)知識庫中的數(shù)據(jù)進行分析,給出正確的診斷結(jié)果。
3 優(yōu)勢分析
3.1利用移動代理進行故障定位
如果MA在巡游路徑上發(fā)現(xiàn)有節(jié)點不可達,就向管理站發(fā)出信息,通知管理站有異常。因為本站之前的各站都是可達的,所以只要問題出在后端,管理站仍可以收到該消息。就算問題出在前端,此移動代理丟失,在下一次巡游中也可以定位故障發(fā)生源。管理站知道發(fā)生問題后,就利用移動代理來定位故障。
3.2對網(wǎng)絡(luò)中數(shù)據(jù)流量的分析
傳統(tǒng)的客戶/服務(wù)方式要完成一次系統(tǒng)故障診斷需依次向各個客戶機發(fā)出請求,系統(tǒng)數(shù)據(jù)流量的計算公式為:
其中,Ncs表示集中式系統(tǒng)中的數(shù)據(jù)流量,Nc表示采集設(shè)備的數(shù)據(jù)量,Nsnnp表示一次SNMP請求發(fā)出和響應(yīng)的數(shù)據(jù)量,m表示系統(tǒng)中參與系統(tǒng)監(jiān)控的計算機數(shù)量,n表示完成一輪系統(tǒng)監(jiān)控共發(fā)送了n次SNMP請求。
基于移動Agent的系統(tǒng)監(jiān)控在本地處理所有采集設(shè)備的數(shù)據(jù)和SNMP的數(shù)據(jù),減少了網(wǎng)絡(luò)上的數(shù)據(jù)流量。其數(shù)據(jù)量計算公式為:
其中,Nagent表示基于移動Agent的系統(tǒng)的數(shù)據(jù)流量,Ndi表示本地系統(tǒng)不能處理的數(shù)據(jù),Nsi表示本地系統(tǒng)已處理的數(shù)據(jù)結(jié)果,Nma表示移動Agent的本身的數(shù)據(jù)量,m同公式(1)。
從以上兩式的對比中可以看出,Nma只是移動Agent的代碼部分,代碼相對于采集的數(shù)據(jù)來說是非常少的。
3.3對系統(tǒng)監(jiān)控中時延的分析
傳統(tǒng)的集中式的系統(tǒng)監(jiān)控采用輪詢的方式,整個系統(tǒng)的時延見公式(3):
Tes=mTc+n(Ts+Tr)
(3)其中,Tcs表示集中式系統(tǒng)監(jiān)控時的時延,Tc每次設(shè)備數(shù)據(jù)采集所需時間,Ts和Tr分別表示一次數(shù)據(jù)SNMP請求和響應(yīng)的時延,m、n同公式(1)中的定義。
而在基于移動Agent的系統(tǒng)監(jiān)控系統(tǒng)中,由于預(yù)先激活常駐代理SA,各被監(jiān)控站處于實時狀態(tài),移動代理MA在巡游進程中可以直接從SA中獲取數(shù)據(jù),節(jié)省了等待數(shù)據(jù)采集的時延。時延的計算公式為:
Tagent=(m-1)(Tms+Tma)
(4)其中,Tagent表示利用移動Agent進行系統(tǒng)監(jiān)控時的時延,T。是SA向MA傳送數(shù)據(jù)及MA處理數(shù)據(jù)的時間,Tma為每個MA遷移的時延,m同公式(1)。
從以上兩個式子可以看出,Tc是一個很耗時的量,而在移動Agent環(huán)境中設(shè)備數(shù)據(jù)采集是由SA在本地完成的,不存在Tc這個時延,從而大幅度減少了整個系統(tǒng)的時延。
4 結(jié)束語
經(jīng)過以上分析可以看出:這種基于移動Agent的分布式系統(tǒng)監(jiān)控模型,明顯地降低了網(wǎng)絡(luò)流量,減少了數(shù)據(jù)傳遞的時延,從而增強了整個監(jiān)控系統(tǒng)的實時性?;谌斯ぶ悄軐<蚁到y(tǒng)的診斷算法,也提高了故障診斷的準(zhǔn)確性。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。