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