祝紅光,周亮瑾,李天翼,賈成強
隨著計算機應(yīng)用系統(tǒng)的不斷發(fā)展,系統(tǒng)規(guī)模越來越龐大,應(yīng)用功能和技術(shù)實現(xiàn)越來越復(fù)雜。保證系統(tǒng)的各個職能單元和功能層次協(xié)調(diào)有效運行是重要的技術(shù)內(nèi)容。系統(tǒng)協(xié)調(diào)、有效運行的實現(xiàn)途徑有兩個方面:(1)應(yīng)用系統(tǒng)內(nèi)部的結(jié)構(gòu)、流程和數(shù)據(jù)、操作的耦合實現(xiàn)。(2)借助集中的監(jiān)控管理系統(tǒng),把物理位置分散、處于不同技術(shù)層面、承擔(dān)不同業(yè)務(wù)功能的對象單元信息集中監(jiān)控,使整個應(yīng)用系統(tǒng)運行情況處于可知、可控的狀態(tài)。
監(jiān)控系統(tǒng)的主要功能是發(fā)現(xiàn)應(yīng)用系統(tǒng)運行的問題、定位故障和協(xié)助排除故障。現(xiàn)在,監(jiān)控系統(tǒng)已經(jīng)成為大型應(yīng)用系統(tǒng)不可或缺的重要組成部分。系統(tǒng)運行狀態(tài)監(jiān)控的專業(yè)軟件也成為一個獨立的研究方向。監(jiān)控系統(tǒng)的設(shè)計包括多個環(huán)節(jié),如監(jiān)控數(shù)據(jù)采集、監(jiān)控數(shù)據(jù)組織、監(jiān)控內(nèi)容展現(xiàn)等。本文主要討論監(jiān)控對象的數(shù)據(jù)結(jié)構(gòu)。
在監(jiān)控對象的數(shù)據(jù)結(jié)構(gòu)中,主要有兩個方面數(shù)據(jù):對象描述數(shù)據(jù)和對象組織數(shù)據(jù)。
對象描述是一類對象的完整描述,通過描述數(shù)據(jù),可以全面了解監(jiān)控對象的具體屬性和系統(tǒng)位置。
具體對象的描述數(shù)據(jù)是完整且獨立的。對象之間的物理聯(lián)系和邏輯聯(lián)系則由組織數(shù)據(jù)完成。
監(jiān)控對象的屬性數(shù)據(jù)可分為共性數(shù)據(jù)和個性數(shù)據(jù)兩個方面。共性數(shù)據(jù)中包含統(tǒng)一的字段;具體類型對象的個性字段描述該類型對象的特殊屬性。共性數(shù)據(jù)是個基類,具體監(jiān)控對象在繼承了基類基礎(chǔ)上,補充以個性屬性,形成完整的監(jiān)控對象數(shù)據(jù)。在共性字段和個性字段中又可以分出靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)。靜態(tài)數(shù)據(jù)描述對象固定不變的屬性,動態(tài)數(shù)據(jù)描述對象的可變屬性。監(jiān)控對象數(shù)據(jù)構(gòu)成見圖1。
圖1 監(jiān)控對象數(shù)據(jù)構(gòu)成
共性靜態(tài)數(shù)據(jù)包括對象名稱、類型、廠商描述、Agent位置、基礎(chǔ)圖標(biāo)、狀態(tài)顯示類型、狀態(tài)數(shù)據(jù)類型和運行數(shù)據(jù)展現(xiàn)類型。共性動態(tài)數(shù)據(jù)是狀態(tài)數(shù)據(jù)、狀態(tài)更新時間、對象可控標(biāo)識等。個性靜態(tài)是具體對象類型的型號版本、固定功能參數(shù)。個性動態(tài)數(shù)據(jù)包括配置數(shù)據(jù)和運行數(shù)據(jù)。監(jiān)控系統(tǒng)可以根據(jù)個性動態(tài)數(shù)據(jù)計算出共性動態(tài)數(shù)據(jù)。
靜態(tài)數(shù)據(jù)是對象建立的基礎(chǔ),動態(tài)數(shù)據(jù)是具體對象運行期間的變化和配置改變,對于具體對象,前者固定不變,后者需要定期檢測或觸發(fā)型更新。兩者結(jié)合構(gòu)成完整的監(jiān)控對象。
對象描述數(shù)據(jù)是對獨立的對象個體進(jìn)行描述。但是,監(jiān)控系統(tǒng)面向眾多的監(jiān)控對象個體進(jìn)行管理,必然導(dǎo)致管理混亂,監(jiān)控效率低,且不易綜合考察系統(tǒng)狀態(tài)。面向監(jiān)控需求,眾多的監(jiān)控對象必須依據(jù)物理的聯(lián)系和邏輯的聯(lián)系有機地聯(lián)系起來,才能夠清晰地展現(xiàn)被監(jiān)控的環(huán)境,有效地索引對象層次,準(zhǔn)確地定位運行故障和問題。
監(jiān)控對象之間存在物理聯(lián)系、邏輯聯(lián)系和管理聯(lián)系。物理聯(lián)系是最直接的關(guān)系,如數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫存儲單元之間的整體對象和局部對象的關(guān)系。邏輯聯(lián)系是對象之間沒有必然的聯(lián)系,但是在邏輯應(yīng)用中,屬于共同的邏輯單元,處于密切的邏輯流程中,彼此運行狀態(tài)直接產(chǎn)生影響。管理聯(lián)系是單純以監(jiān)控組織為目的,把相關(guān)的、或同類型的、或僅僅是密切關(guān)注的不相關(guān)的對象進(jìn)行集合型組織,方便監(jiān)控。
監(jiān)控系統(tǒng)基于3種聯(lián)系方式,將對象集合中的對象進(jìn)行組織。 組織元素有視圖和索引路徑。一個監(jiān)控視圖就是一個頁面,頁面中包含了屬于同一上級對象的監(jiān)控對象。索引路徑是對象和視圖的關(guān)聯(lián)關(guān)系。如果一個對象存在子對象,那么該對象和包含子對象的視圖之間的聯(lián)系就是一條索引路徑。
圖2 監(jiān)控對象集合(a)
圖3 監(jiān)控對象結(jié)構(gòu)
視圖是屬于相同展現(xiàn)頁面的索引節(jié)點的集合。索引節(jié)點數(shù)據(jù)包括指代對象的指針、上層索引節(jié)點的指針、所屬視圖和子視圖4個元素。
在圖2中,各個對象是獨立的監(jiān)控目標(biāo),不體現(xiàn)任何相互關(guān)系。在圖3中,各個索引節(jié)點指代具體監(jiān)控對象,通過視圖和索引路徑關(guān)聯(lián),A1和A2是A的子對象在A的展開視圖中展現(xiàn),A11是A1的子對象,在A1的展現(xiàn)視圖中展現(xiàn)。C是個方形對象,表示是個管理文件夾對象,其展開圖包含了具有某種監(jiān)控共同點的A1和B1。
在小型監(jiān)控系統(tǒng)或?qū)S帽O(jiān)控系統(tǒng)中,監(jiān)控內(nèi)容較單一,被監(jiān)控環(huán)境規(guī)模較小,比如面向SqlServer數(shù)據(jù)庫的專用監(jiān)控系統(tǒng),面向某個廠商或某類網(wǎng)絡(luò)設(shè)備的監(jiān)控系統(tǒng),其監(jiān)控內(nèi)容可以很詳細(xì),但是對象劃分和應(yīng)用規(guī)模都比較小。在沒有復(fù)雜的對象構(gòu)成的監(jiān)控環(huán)境中,對象數(shù)據(jù)和組織數(shù)據(jù)分離的優(yōu)勢得不到體現(xiàn)。對象聯(lián)系可以直接合并到對象數(shù)據(jù)中。
綜合性監(jiān)控系統(tǒng)是對面向分布式節(jié)點的操作系統(tǒng)、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫系統(tǒng)和應(yīng)用系統(tǒng)進(jìn)行監(jiān)控管理,其監(jiān)控內(nèi)容的技術(shù)涵蓋面寬,包含多類型的對象。其監(jiān)控環(huán)境基本是分布式系統(tǒng)的集中管理,監(jiān)控對象多,且相互關(guān)聯(lián)關(guān)系復(fù)雜。集中管理的綜合監(jiān)控系統(tǒng)必需提供對象自由組合的功能,有利于用戶建立不同側(cè)面不同層次的監(jiān)控對象視圖。以上需求都要求監(jiān)控系統(tǒng)中對象數(shù)據(jù)和組織數(shù)據(jù)分離。
另外,對象數(shù)據(jù)和組織數(shù)據(jù)分離可以保證管理對象的獨立性,無論是在對象設(shè)計,還是在監(jiān)控功能應(yīng)用中,都體現(xiàn)了監(jiān)控事務(wù)的完整。尤其在監(jiān)控Agent的設(shè)計中更能夠體現(xiàn)面向?qū)ο蟮臄?shù)據(jù)采集和控制操作,而無需兼顧對象之間的關(guān)聯(lián)。
對象物理關(guān)系是基礎(chǔ)的管理模式,反映了事務(wù)的實際關(guān)系。物理關(guān)系是最簡單和直觀的索引方式。為了管理的方便和監(jiān)控的需要,監(jiān)控系統(tǒng)提供了監(jiān)控對象的組合功能,見圖4。用戶可根據(jù)需求把管理的對象隨意組合在工作視圖內(nèi)。組合功能得益于監(jiān)控系統(tǒng)的一個文件夾對象類型。文件夾對象就如同文件系統(tǒng)的文件夾可以包含其他文件夾和具體管理對象。用戶利用文件夾可以實現(xiàn)多層次的組合視圖。
圖4 監(jiān)控對象集合(b)
圖5 文件夾對象層次
圖5表示A和B樹型結(jié)構(gòu)式物理關(guān)系的組織方式。用戶建立了兩個文件夾對象C和D,D是C的子文件夾,根據(jù)管理的需要這種包含關(guān)系可以多層次地設(shè)置。文件夾展開視圖方式為組合方式。兩種模式相結(jié)合,監(jiān)控系統(tǒng)為用戶提供了靈活的對象索引形式。
監(jiān)控對象的索引形式有兩個方向,向下是展開方向,向上是歸結(jié)方向。展開方向是應(yīng)用環(huán)境的故障定位甚至分析方向。歸結(jié)方向是對象運行狀態(tài)的反映途徑。
監(jiān)控結(jié)構(gòu)的樹型結(jié)構(gòu)中,狀態(tài)信息逐層向上反映,使用戶在清晰簡單的高層界面中可以掌控應(yīng)用系統(tǒng)的狀態(tài)。如圖6,A的狀態(tài)綜合了其下子對象的狀態(tài),包括A11、A1、A2。A11的狀態(tài)發(fā)生變化,會向上反映到A1,進(jìn)而匯報到A;A1同樣匯報到D,再傳遞到C。
狀態(tài)優(yōu)先級是狀態(tài)反映的技術(shù)實現(xiàn)重點。對象狀態(tài)根據(jù)應(yīng)用系統(tǒng)特點可以分為幾級。以紅(故障)、黃(警告)、綠(正常)3級狀態(tài)為例。
假設(shè)A沒有自身的狀態(tài)型參量,它的狀態(tài)是A1和A2狀態(tài)的綜合,A、A1和A2的狀態(tài)經(jīng)過以下步驟變化。
(1)初始狀態(tài):A、A1和A2都是綠色(正常狀態(tài))。
(2)A1的狀態(tài)變成紅色(故障狀態(tài)),A的狀態(tài)表現(xiàn)為紅色。
(3)A2的狀態(tài)變成黃色(警告狀態(tài)),A的狀態(tài)仍表現(xiàn)為紅色。
(4)A1的故障解除,恢復(fù)綠色(正常狀態(tài)),A的狀態(tài)表現(xiàn)為黃色。
(5)A2的狀態(tài)恢復(fù)正常,恢復(fù)綠色(正常狀態(tài)),A的狀態(tài)表現(xiàn)為綠色。
圖6 狀態(tài)反映優(yōu)先級
對于3個狀態(tài)級別的監(jiān)控系統(tǒng),設(shè)置兩個狀態(tài)位,分別表示紅色狀態(tài)和黃色狀態(tài)。一個對象可能具有多個狀態(tài)事件,但優(yōu)先展現(xiàn)優(yōu)先級高的狀態(tài)。兩個狀態(tài)位作為狀態(tài)計數(shù)器,全面體現(xiàn)完整的狀態(tài)信息。
監(jiān)控系統(tǒng)的狀態(tài)級別不一定是3個,可以更多,比如是m個級別,可以采用m-1個狀態(tài)計數(shù)器表示。
監(jiān)控對象圖標(biāo)展現(xiàn)的僅是狀態(tài)級最高的故障,存在級別低的故障事件被屏蔽的問題,且只靠監(jiān)控圖標(biāo)狀態(tài),不能夠描述具體故障參量的信息,所以在圖標(biāo)狀態(tài)之外,還要設(shè)置狀態(tài)事件數(shù)據(jù),數(shù)據(jù)收集中體現(xiàn)的狀態(tài)可以在狀態(tài)事件中描述。瀏覽一個監(jiān)控對象的狀態(tài)事件,系統(tǒng)會根據(jù)對象組織結(jié)構(gòu),把所有子對象的當(dāng)前狀態(tài)事件全部列出來,避免了狀態(tài)屏蔽,且提供詳細(xì)的狀態(tài)信息描述。
通過對監(jiān)控系統(tǒng)對象數(shù)據(jù)結(jié)構(gòu)的研究,得出以下結(jié)論:(1)對象數(shù)據(jù)追求完整性和獨立性。(2)關(guān)系數(shù)據(jù)力求直觀和靈活。(3)狀態(tài)反映避免遺漏和屏蔽。遵循科學(xué)的對象數(shù)據(jù)設(shè)計原則和方法,對整個監(jiān)控系統(tǒng)的實現(xiàn)和應(yīng)用效果起到重要作用。
管理監(jiān)控功能是系統(tǒng)性的結(jié)構(gòu),不但要有合理的管理端數(shù)據(jù)和操作,還要有監(jiān)控代理端的協(xié)同和配合,并且要對具體監(jiān)控對象進(jìn)行深入的分析,將對象的描述參量進(jìn)行篩選和綜合,構(gòu)建出抽象且全面的監(jiān)控對象。