李德泉, 何文春, 阮宇智, 劉一鳴
(國家氣象信息中心,北京100081)
實時氣象資料數(shù)據(jù)庫系統(tǒng)(以下稱“實時數(shù)據(jù)庫”或“實時庫”)作為“國家級氣象資料存儲檢索系統(tǒng)”(MDSS)[1]的重要組成部分,是氣象信息部門針對預(yù)測預(yù)報及相關(guān)業(yè)務(wù)開發(fā)的重要數(shù)據(jù)服務(wù)系統(tǒng),是確保從觀測到預(yù)報業(yè)務(wù)流程按時高效完成的重要基礎(chǔ)性數(shù)據(jù)支撐環(huán)境。實時數(shù)據(jù)庫系統(tǒng)對實時氣象資料進(jìn)行接收、分類、加工處理,并以地面氣象資料、高空氣象資料、海洋氣象資料、氣象輻射資料、農(nóng)業(yè)氣象資料、數(shù)值分析預(yù)報產(chǎn)品資料、氣象災(zāi)害資料、氣象衛(wèi)星資料、氣象服務(wù)產(chǎn)品資料和其他資料等12類資料形式存儲并實現(xiàn)資源共享。
所謂實時(Real-Time),是指數(shù)據(jù)庫應(yīng)用系統(tǒng)一方面要維護(hù)大量共享數(shù)據(jù)和相關(guān)用戶信息,另一方面其應(yīng)用服務(wù)有很強(qiáng)的時間性,要求在一定的時刻或者一定的時間期限內(nèi)從外部環(huán)境采集數(shù)據(jù),經(jīng)規(guī)范化處理后,以有效的數(shù)據(jù)組織形式存儲,并及時響應(yīng)隨后的大量并發(fā)訪問服務(wù)。因此,整個數(shù)據(jù)處理過程具備短時、高效特點,并且每種資料對數(shù)據(jù)服務(wù)時效具有明確要求,過時則無意義[2]。
氣象實時數(shù)據(jù)庫不僅作為關(guān)鍵數(shù)據(jù)源連接氣象中心、公共氣象服務(wù)中心等部門的實時業(yè)務(wù)系統(tǒng),還為科研用戶提供一定時間期限內(nèi)數(shù)據(jù)查詢下載服務(wù)。因其在整個業(yè)務(wù)流程中發(fā)揮關(guān)鍵的底層支撐作用,其服務(wù)穩(wěn)定性及時效將直接影響其服務(wù)對象的實時業(yè)務(wù)效能和氣象預(yù)報及時性與準(zhǔn)確性,進(jìn)而影響氣象部門對內(nèi)外行業(yè)用戶、公眾用戶的氣象服務(wù)質(zhì)量,因此從業(yè)務(wù)運行開始就一直作為國家氣象信息中心的運維重點。
為了保障實時數(shù)據(jù)庫系統(tǒng)穩(wěn)定對外服務(wù),協(xié)助值班人員日常值班,實時動態(tài)地監(jiān)測各類氣象實時觀測資料的到報、入庫質(zhì)量,以及實時庫處理相關(guān)線程的運行狀態(tài),國家氣象信息中心組織技術(shù)力量,開發(fā)完成實時氣象資料數(shù)據(jù)庫業(yè)務(wù)監(jiān)控系統(tǒng)(RDBCat,以下簡稱“實時庫監(jiān)控系統(tǒng)”),并在2008年奧運會期間業(yè)務(wù)上線運行。
作為針對實時氣象數(shù)據(jù)庫服務(wù)業(yè)務(wù)的監(jiān)控系統(tǒng),系統(tǒng)核心設(shè)計目的是針對實時庫的運算環(huán)境及健康狀況進(jìn)行即時監(jiān)控與報警,確保實時數(shù)據(jù)服務(wù)能穩(wěn)定支撐業(yè)務(wù)使用。因此可歸類為服務(wù)類監(jiān)控系統(tǒng)(Service Monitoring and Control,SMC)[3]。
服務(wù)監(jiān)控系統(tǒng)重點負(fù)責(zé)對信息服務(wù)系統(tǒng)運算環(huán)境及健康狀況進(jìn)行即時監(jiān)控,動態(tài)顯示服務(wù)成功或失敗的可辨識特征,并對服務(wù)異常狀況報警。此外,服務(wù)監(jiān)控還負(fù)責(zé)收集服務(wù)故障相關(guān)上下游運行環(huán)境及流程信息,進(jìn)而協(xié)助使用部門改進(jìn)IT服務(wù)質(zhì)量。
服務(wù)監(jiān)控系統(tǒng)往往以分布式方式采集來自于信息服務(wù)系統(tǒng)各相關(guān)設(shè)備、應(yīng)用程序的日志信息和告警事件信息,判斷服務(wù)故障事件,快速定位故障事件的來源,分析故障發(fā)生的根本原因,集中展示信息服務(wù)系統(tǒng)運算環(huán)境及整體安全狀況。一旦發(fā)現(xiàn)高風(fēng)險服務(wù)故障事件還可觸發(fā)相應(yīng)故障事件處理流程,督促值班人員及相關(guān)責(zé)任人進(jìn)行快速排查問題和解決故障。
服務(wù)監(jiān)控系統(tǒng)從體系架構(gòu)上可劃分為4層:信息基礎(chǔ)層、數(shù)據(jù)采集層、數(shù)據(jù)及規(guī)則處理層、展示層4個層面,各個層面功能各不相同。整體架構(gòu)如圖1所示。
信息基礎(chǔ)層為整個系統(tǒng)提供基礎(chǔ)設(shè)備及軟件運行環(huán)境(網(wǎng)絡(luò)設(shè)備、安全設(shè)備、業(yè)務(wù)系統(tǒng)、服務(wù)器等),其同時也是各類監(jiān)控信息的數(shù)據(jù)獲取來源。
數(shù)據(jù)采集層:根據(jù)系統(tǒng)內(nèi)部指定的運維策略,借助由專用的數(shù)據(jù)采集引擎,數(shù)據(jù)采集層負(fù)責(zé)從信息基礎(chǔ)層采集各種報警信息、日志信息、流量信息,經(jīng)過數(shù)據(jù)格式標(biāo)準(zhǔn)化、數(shù)據(jù)歸并、統(tǒng)計等處理后,形成原始數(shù)據(jù),提交給上層的數(shù)據(jù)及規(guī)則處理層。
數(shù)據(jù)及規(guī)則處理層:將采集到的原始數(shù)據(jù)按照業(yè)務(wù)系統(tǒng)數(shù)據(jù)、設(shè)備數(shù)據(jù)、網(wǎng)絡(luò)及安全數(shù)據(jù)等進(jìn)行分門別類,經(jīng)過基于統(tǒng)計、基于規(guī)則的關(guān)聯(lián)分析后,科學(xué)合理地定義各類故障事件的性質(zhì)和處理級別,作為展示層的數(shù)據(jù)基礎(chǔ)。
展示層:實現(xiàn)整個服務(wù)監(jiān)控系統(tǒng)的靈活展示和配置管理。通過豐富的、多元化、分層次的圖形化展示方式呈現(xiàn)各個監(jiān)控對象的運行狀況,提供有效的安全預(yù)警,減免嚴(yán)重故障的發(fā)生,快速應(yīng)對突發(fā)故障并降低所造成的損失。
總之,一個設(shè)計良好的面向服務(wù)的監(jiān)控系統(tǒng)應(yīng)該至少具備如下完整因素:明確的監(jiān)控對象,涵蓋所有業(yè)務(wù)需要關(guān)注的場景并提示給使用者簡明清晰必要信息,監(jiān)控信息明確分類并具有界面友好的處理建議,當(dāng)然,其他方面諸如快速部署、擴(kuò)展性、標(biāo)準(zhǔn)化等根據(jù)實際需求也必須有所側(cè)重。同時,與之匹配的業(yè)務(wù)運維架構(gòu)尤其是監(jiān)控流程和運維崗位設(shè)置等管理性內(nèi)容也會對監(jiān)控系統(tǒng)設(shè)計及發(fā)揮效益起著至關(guān)重要的先決制約作用。
圖1 服務(wù)監(jiān)控系統(tǒng)體系架構(gòu)
鑒于服務(wù)監(jiān)控系統(tǒng)主要用戶為一、二線值班人員,作為業(yè)務(wù)值班監(jiān)控系統(tǒng),其設(shè)計思路上還應(yīng)充分考慮業(yè)務(wù)值班特點:支持聲音報警;支持監(jiān)控信息集中“一頁式”定制顯示,使報警信息及統(tǒng)計信息一目了然,不需要手工繁瑣操作;簡單易行的策略配置操作;監(jiān)控信息按錯誤類別分類,用戶可定制哪些類別在監(jiān)控屏幕顯示,屏蔽不關(guān)心的信息提示,避免值班干擾;具備故障處理向?qū)?幫助值班人員與后臺技術(shù)人員溝通。
值班運維業(yè)務(wù)架構(gòu)采用一線、二線兩個級別。一線值班并報告故障內(nèi)容,二線值班負(fù)責(zé)排查并去除故障,之后反饋一線。
同時,業(yè)務(wù)監(jiān)控系統(tǒng)還應(yīng)作為二線進(jìn)行故障追溯和關(guān)聯(lián)分析的輔助工具。
1.3.1 典型的實時數(shù)據(jù)庫業(yè)務(wù)數(shù)據(jù)流程
實時庫作為系統(tǒng)的監(jiān)視對象,其流程直接影響系統(tǒng)的監(jiān)視內(nèi)容的設(shè)計,以圖2典型的實時業(yè)務(wù)流程進(jìn)行簡要分析說明。
流程中,報文數(shù)據(jù)首先進(jìn)行入庫前預(yù)處理,報文經(jīng)過格式檢查并解析后按照分類歸并,再存放于一定目錄組織形式的臨時文件庫中,格式檢查錯誤信息被寫入日志。入庫處理進(jìn)程從臨時文件庫中提取數(shù)據(jù)并存入關(guān)系型數(shù)據(jù)庫或文件庫中,期間經(jīng)過質(zhì)量控制算法發(fā)現(xiàn)的異常值寫入要素異常值日志。對外服務(wù)平臺從數(shù)據(jù)庫中提取信息,以程序接口、文件推送、查詢服務(wù)等多種形式對外提供實時數(shù)據(jù)服務(wù)。
圖2 實時數(shù)據(jù)業(yè)務(wù)流程
1.3.2 監(jiān)控對象需求
由上述流程可以看出,實時氣象資料數(shù)據(jù)庫系統(tǒng)的監(jiān)視對象至少包括2個方面:數(shù)據(jù)庫系統(tǒng)運行監(jiān)視和數(shù)據(jù)處理流程監(jiān)視。
數(shù)據(jù)庫系統(tǒng)運行監(jiān)視包括數(shù)據(jù)庫管理系統(tǒng)運行狀態(tài)監(jiān)視、空間監(jiān)視和用戶行為監(jiān)視。重點包括底層的商用數(shù)據(jù)庫的關(guān)鍵進(jìn)程監(jiān)視、表空間監(jiān)視、CPU與磁盤利用率等系統(tǒng)資源監(jiān)視。
數(shù)據(jù)流程監(jiān)視包括來報數(shù)量統(tǒng)計、應(yīng)到報缺報統(tǒng)計、未處理資料統(tǒng)計、數(shù)據(jù)入庫統(tǒng)計、錯報統(tǒng)計、處理進(jìn)程狀態(tài)監(jiān)視、數(shù)據(jù)備份和清除監(jiān)視。監(jiān)控對象重點是對實時資料(地面、高空、國外數(shù)值預(yù)報產(chǎn)品等)入庫情況、關(guān)鍵進(jìn)程運行狀態(tài)、數(shù)據(jù)處理臨時目錄文件積壓狀態(tài)、數(shù)據(jù)質(zhì)量監(jiān)測等,并提供各省入庫詳情的查詢。
1.3.3 告警級別
監(jiān)控系統(tǒng)根據(jù)關(guān)鍵性能指標(biāo)(Key Performance Indicator,KPI)計算監(jiān)控對象狀態(tài)所處的風(fēng)險值,由該值確定告警級別。系統(tǒng)將風(fēng)險值分為5個級別(見表1),最終界面顯示的告警級別則將5個級別歸并為異常、警告、正常3個級別,用紅、黃、綠不同顏色標(biāo)識。
風(fēng)險計算公式為:
F通常取一個線性函數(shù)集合,即在不同的定義域范圍內(nèi)選取不同的線性函數(shù),以體現(xiàn)隨著監(jiān)控對象狀態(tài)值在一定條件下不斷上升,將導(dǎo)致風(fēng)險值線性增長。通過與KPI的比較分析計算得到的風(fēng)險值為一個數(shù)字,不同的取值范圍決定了不同的風(fēng)險級別,風(fēng)險級別劃分為5個等級:
表1 事件狀態(tài)風(fēng)險值級別
系統(tǒng)的架構(gòu)選擇沒有采用廣泛的Brower/Server架構(gòu),而是采用Client/Server架構(gòu)。關(guān)于“胖”、“瘦”客戶端的優(yōu)缺點爭論由來已久。胖客戶端的優(yōu)勢在于優(yōu)良的客戶體驗以及可以離線操作,瀏覽器的優(yōu)勢在于易于部署管理,全部數(shù)據(jù)存儲在服務(wù)器,不存在數(shù)據(jù)同步問題。事實上,現(xiàn)在胖客戶端通過不同的技術(shù)革新已遠(yuǎn)不是過去傳統(tǒng)意義上的胖客戶端,例如Java的RCP[4-6]以及.NET平臺上的Smart Client[7]解決方案都具有廣泛成功案例。不存在任何情況下都能始終保持優(yōu)勢的唯一方案,方案選擇更多依據(jù)實際需要。系統(tǒng)選擇胖客戶端主要基于如下考慮:
(1)首先最重要的一點,是希望利用客戶端的資源為值班人員提供更加友善的用戶體驗。這樣監(jiān)控客戶端既可充分使用客戶端的硬件資源和軟件資源,也可利用客戶端本地存儲能力。
(2)通過一個集中的服務(wù)器,客戶端通過網(wǎng)絡(luò)可以非常容易地實現(xiàn)部署和自動更新,不再出現(xiàn)傳統(tǒng)胖客戶端程序會出現(xiàn)的各客戶端版本不同的情況。
(3)系統(tǒng)整體功能劃分上,考慮客戶端負(fù)責(zé)數(shù)據(jù)展現(xiàn)和人機(jī)交互,而服務(wù)器負(fù)責(zé)數(shù)據(jù)處理和業(yè)務(wù)邏輯。
圖3為監(jiān)控系統(tǒng)架構(gòu)設(shè)計圖。
在整個監(jiān)控框架中,系統(tǒng)通過部署在各監(jiān)控對象上的代理程序(agent)采集各種運行狀況信息,形成標(biāo)準(zhǔn)化的XML格式監(jiān)控原始數(shù)據(jù),提交給上層的數(shù)據(jù)及規(guī)則處理層。該層獲得原始數(shù)據(jù)后,再根據(jù)在客戶端和服務(wù)器端始終保持一致的全局規(guī)則及處理策略,對原始數(shù)據(jù)經(jīng)過基于統(tǒng)計、基于規(guī)則的關(guān)聯(lián)分析后,形成監(jiān)控展示信息及報警數(shù)據(jù),以標(biāo)準(zhǔn)化的XML形式,通過HTTP協(xié)議傳輸給展示層。展示層對XML文件進(jìn)行解析,根據(jù)客戶端的顯示配置文件,定制圖形化展示各個監(jiān)控對象的運行狀況,并對異常情況進(jìn)行聲音報警。
采用agent方法的優(yōu)勢在于分布式部署方便靈活,擴(kuò)充方便,并且不會對之前監(jiān)控內(nèi)容造成影響;另外,為便于系統(tǒng)整合,agent數(shù)量可以隨意增減,每個監(jiān)控對象可以用一個agent采集,也可多個監(jiān)控對象由一個agent采集。
圖3 實時庫業(yè)務(wù)監(jiān)控系統(tǒng)架構(gòu)
對業(yè)務(wù)監(jiān)控系統(tǒng),必須支持對監(jiān)控規(guī)則的靈活配置和調(diào)整,以應(yīng)對加密觀測和突發(fā)應(yīng)急服務(wù)事件需要,因為這些情況下往往需要對部分規(guī)則進(jìn)行調(diào)整,如地震期間對某些重點關(guān)心區(qū)域應(yīng)到站入庫情況格外關(guān)注,甚至要求必須規(guī)定時間內(nèi)全部入庫,對這些應(yīng)到站的報警閾值就會調(diào)高已滿足監(jiān)控需要。
系統(tǒng)通過靈活的監(jiān)控策略配置文件并建立一套系統(tǒng)的監(jiān)控規(guī)則語法描述,實現(xiàn)規(guī)則驅(qū)動下的監(jiān)控內(nèi)容靈活調(diào)整功能。系統(tǒng)將XML格式作為策略配置文件基本格式,并參考?xì)庀笮袠I(yè)元數(shù)據(jù)特點[8],制定出XML規(guī)范下的規(guī)則策略描述形式。數(shù)據(jù)庫監(jiān)控策略中需考慮的常見因素如提供者、數(shù)據(jù)庫及表、響應(yīng)方法、閾值、頻率、時間及邏輯計算、規(guī)則屬性及內(nèi)容等,在配置文件中皆使用相應(yīng)XML的標(biāo)簽項(Tag)和屬性值定義表示。
當(dāng)各種規(guī)則及監(jiān)控參數(shù)變更時,通過XML中的標(biāo)簽項及屬性值予以執(zhí)行。
系統(tǒng)通過HT TP協(xié)議向客戶端返回XML格式監(jiān)控數(shù)據(jù)結(jié)果。也就是說,監(jiān)控結(jié)果作為一種服務(wù)器資源,可以簡單用類似http://localhost/rdbcat/output/device/01這樣形式的URI表示并獲取,并且每一個會話都是無狀態(tài)的,可重復(fù)使用URI訪問監(jiān)控結(jié)果資源。這一點上正好符合REST(Representational State Transfer)[9]架構(gòu)思想,即利用簡便易行的方式滿足遠(yuǎn)程信息獲取的需要。
REST方法引入的另一優(yōu)勢就是系統(tǒng)監(jiān)控結(jié)果可以方便整合進(jìn)入其他監(jiān)控平臺,因為外部平臺獲取系統(tǒng)監(jiān)控結(jié)果資源的方法十分簡單,采用URI訪問即可獲得監(jiān)控結(jié)果(XML形式),然后按照XML描述規(guī)則解析內(nèi)容即可完成整合。
系統(tǒng)監(jiān)控結(jié)果沒有采用一個大而全的形式表示,而是分而治之,依照監(jiān)控對象的分類劃分為資料入庫、統(tǒng)計、設(shè)備、進(jìn)程等多個XML文件,便于未來與其他系統(tǒng)整合時,外部系統(tǒng)僅提取所關(guān)心監(jiān)控結(jié)果文件即可。
以下為資料入庫狀況的結(jié)果XML文件示例。
此外,為降低運維復(fù)雜度,系統(tǒng)還為一二線值班人員進(jìn)行展示及功能的特殊功能設(shè)計,如集中告警及處理,自動遠(yuǎn)程升級,日志查詢統(tǒng)計,各省未入庫站點分省統(tǒng)計,要素異常值報警等。實時庫監(jiān)控系統(tǒng)客戶端運行展示界面如圖4所示。
圖4 實時庫業(yè)務(wù)監(jiān)控系統(tǒng)界面
隨著氣象業(yè)務(wù)發(fā)展,對實時數(shù)據(jù)庫進(jìn)行有效服務(wù)監(jiān)控越來越重要。一方面,隨著數(shù)據(jù)庫系統(tǒng)自身龐雜程度以及業(yè)務(wù)系統(tǒng)技術(shù)復(fù)雜度的提高,對整個系統(tǒng)基礎(chǔ)架構(gòu)維持良好狀態(tài)的要求不斷增強(qiáng);另一方面,實時業(yè)務(wù)對實時數(shù)據(jù)庫的業(yè)務(wù)依賴性逐步加深,實時庫服務(wù)在業(yè)務(wù)供應(yīng)方面所扮演的角色也變得日益重要。業(yè)務(wù)依賴性的直接結(jié)果是,任何服務(wù)故障都會很快被各級用戶很快感受到,從而使其對氣象部門對外服務(wù)能力產(chǎn)生嚴(yán)重影響。
實時庫監(jiān)控系統(tǒng)自2008年奧運會期間業(yè)務(wù)上線運行后,一直作為重要業(yè)務(wù)保障,提升氣象信息部門在應(yīng)對實時庫突發(fā)故障事件時的響應(yīng)能力,從而有力地支撐實時數(shù)據(jù)庫系統(tǒng)的穩(wěn)定運行。系統(tǒng)通過采用服務(wù)監(jiān)控處理流程,能夠不斷改進(jìn)監(jiān)控方式以配合業(yè)務(wù)和技術(shù)變動,在發(fā)生服務(wù)事故時提高響應(yīng)能力,從而降低對業(yè)務(wù)的影響。經(jīng)過兩年多業(yè)務(wù)實踐的充分檢驗,監(jiān)控系統(tǒng)部署靈活、運行穩(wěn)定、界面友好、升級方便、運維簡便,已成為數(shù)據(jù)服務(wù)方面的重要業(yè)務(wù)保障系統(tǒng),實現(xiàn)了預(yù)期設(shè)計目標(biāo),并為未來信息中心建立統(tǒng)一的大運維監(jiān)控平臺奠定技術(shù)基礎(chǔ)。
致謝:感謝國家氣象信息中心沈文海、高華云、琚玲、劉媛媛、周崢嶸、楊昕等大力協(xié)助和支持,以及眾多一線值班人員的業(yè)務(wù)應(yīng)用反饋支持;感謝張小纓對系統(tǒng)后續(xù)業(yè)務(wù)發(fā)展方向上的重要建議。
[1] 沈文海,趙芳,高華云,等.國家級氣象資料存儲檢索系統(tǒng)的建立[J].應(yīng)用氣象學(xué)報,2004,6.
[2] 趙芳,高峰.如何保障實時氣象資料的管理[J].中國計算機(jī)報,2007.
[3] Baron Anthony,Pizzo Kathryn,Sarabosing Michael.Methods for service monitoring and control,US Application Publication,Publication No.US 2006/0064486 A1 published on 23-Mar-2006[EB/OL].http://ip.com/patapp/US20060064486.
[4] Rich Client Platform.[EB/OL].http://www.eclipse.org/rcp.
[5] Ed Burnette.SAS.Rich Client Tutorial Part[EB/OL].http://www.eclipse.org.
[6] Jeff McAffer,Jean-Michel Lemieux.Eclipse Rich Client Platform-Designing,Coding,and Packaging Java Applications[D].NY:Addison-Wesley Professional,2005.
[7] Smart Client Application Model and the.NET Framework 1.1,Microsoft[EB/OL].http:∥msdn.microsoft.com.
[8] 王國復(fù),徐楓,吳增祥.氣象元數(shù)據(jù)標(biāo)準(zhǔn)與信息發(fā)布技術(shù)研究[J].應(yīng)用氣象學(xué)報,2005,1.
[9] Roy Fielding.Architectural Styles and the Design of Network-based Software Architectures[D].University of California-Irvine,2000.