摘要:此監(jiān)控系統(tǒng)主要是針對某很行內(nèi)部各系統(tǒng)運維能實時監(jiān)控、顯示、預(yù)警,方便管理員了解各系統(tǒng)運行情況及維護(hù),雖然項目沒有很大的規(guī)模卻有及強的針對性、實用性和使用價值,系統(tǒng)原則是方便、簡潔、及時準(zhǔn)確、清楚明了。在此項目開發(fā)過程中選用了非常流行的J2EE框架技術(shù),為項目的成功開發(fā)奠定了良好的基礎(chǔ)。此項目在項目組同志的共同努力已成功展開,其間也得到其他同事的許多幫助,才得以順利進(jìn)行。
關(guān)鍵詞:smp:Smart Monitor Platform,智能監(jiān)控平臺;監(jiān)控視圖
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)28-0119-02
Development and Design of Monitor System in Bank
JIN E
(Tongji University,Shanghai 201804,China)
Abstract: This monitor system mainly aim to supervise、display and precaution the systems running in bank and make it easy for the manager to know the information about the systems and maintain them.Despite the project is not very large, but it is pertinence, practicability and useful. The system principle is convenient、compact、exact and well-known. In the procedure, we choose the latestTechnology,J2EE archive, establish a good foundation for our project’s success. With the commute efforts of our team colleagues, the project has developed. During the working-time, we got many other people’s help. Give my best wish to them.
Key words: smart monitor platform; monitor view
1 引言
互聯(lián)網(wǎng)的普及和銀行系統(tǒng)的快速發(fā)展,給我們的生活帶來了顯著的方便,使我們不必在繁忙的工作和活動中,抽出時間去排隊取錢或辦理銀行的其它業(yè)務(wù)。首先,人們不必拿著大比的現(xiàn)金進(jìn)行交易,甚至可以通過信用卡,先消費后還錢,網(wǎng)上銀行,異地掛失,異地取款,等等,提高了工作效率,豐富了我們的理財方式,方便了我們的生活。
在給我們提供這種方便快捷服務(wù)的背后,銀行內(nèi)部各種服務(wù)系統(tǒng)也迅速增加。在我們的日常生活中,這些應(yīng)用系統(tǒng)不可能總是萬無一失的運行著的。系統(tǒng)運行中很可能會出現(xiàn)下列問題:系統(tǒng)連接不上了,忽略了故障,也不知道會等到什么時候;信息太多了!也不知道是哪里出現(xiàn)了故障,手工檢查每臺設(shè)備,費時費力,等等各種異常。當(dāng)異常出現(xiàn)的時候,系統(tǒng)就無法正常運行,它無疑導(dǎo)致巨大損失。以往,這些異常出現(xiàn)的時候,往往是由管理員依據(jù)自身的IT專業(yè)知識及其經(jīng)驗解決的,這種解決方式不僅無保障性,而且對管理員的水平依賴太大,一旦工作人員不在現(xiàn)場,崗位調(diào)換,離職或引入新員工都會使我們面臨難題,所以我們在這個時候很希望也很有必要有一個軟件能夠幫我們做這些事,把我們從這種困境中解救出來,所以這樣針對銀行監(jiān)控系統(tǒng)就應(yīng)運而生。
從大的方面來講,要把這種繁雜的工作自動化,首先,這個系統(tǒng)就是要能監(jiān)控,把銀行內(nèi)部需要監(jiān)控的系統(tǒng)監(jiān)控起來,其次是顯示,把我們監(jiān)控到的內(nèi)容顯示出來,使我們的工作人員能很容易察看各系統(tǒng)的運行情況,接著就是預(yù)警,能為各個系統(tǒng)設(shè)置預(yù)警,當(dāng)系統(tǒng)達(dá)到預(yù)警標(biāo)準(zhǔn),就通過相應(yīng)的方式通知工作人員,引導(dǎo)工作人員解決問題,從而達(dá)到預(yù)防的效果,大大減少異常出現(xiàn)的概率,提高了工作效率,減輕管理員的工作難度,給銀行系統(tǒng)提高了經(jīng)濟效益。此項工程的重要性已經(jīng)不言而喻。
大集中運維監(jiān)控系統(tǒng)是整個系統(tǒng)的集中監(jiān)控平臺,目標(biāo)是提高生產(chǎn)系統(tǒng)的可靠性和運行效率、降低管理成本,實現(xiàn)預(yù)測性管理、提升IT系統(tǒng)的服務(wù)水平,樹立良好的IT服務(wù)中心形象、節(jié)省人員成本。通過運維監(jiān)控,能夠盡早發(fā)現(xiàn)問題,及時排除故障,為不斷的促進(jìn)系統(tǒng)運維工作由被動型向主動型、由應(yīng)急型向預(yù)防型轉(zhuǎn)變,從而為系統(tǒng)長期的安全平穩(wěn)運行打下良好基礎(chǔ),提高生產(chǎn)系統(tǒng)的可靠性和運行效率。通過監(jiān)控系統(tǒng)的建設(shè),減少直接進(jìn)入主機操作系統(tǒng)和數(shù)據(jù)庫進(jìn)行操作,提高系統(tǒng)的安全性,減輕日常值班人員和系統(tǒng)管理人員的工作強度,提升IT系統(tǒng)的服務(wù)水平,樹立良好的IT服務(wù)中心形象、節(jié)省人員成本。
2 設(shè)計過程
2.1 需求分析
銀行運維監(jiān)控系統(tǒng)的推出,可以促進(jìn)銀行大集中系統(tǒng)運維工作由被動型向主動型、由應(yīng)急型向預(yù)防型轉(zhuǎn)變,從而為銀行大集中系統(tǒng)長期的安全平穩(wěn)運行打下良好基礎(chǔ);根據(jù)用戶描述的業(yè)務(wù)需求,提煉和總結(jié)系統(tǒng)應(yīng)遵循的功能需求。根據(jù)需求,我們把銀行運行監(jiān)控系統(tǒng)的功能模塊分成2部分,界面呈現(xiàn)部分和后臺實現(xiàn)部分,這2部分功能模塊又可以細(xì)分為十多個功能點,包括實時監(jiān)控、信息查看、初始化設(shè)置、業(yè)務(wù)系統(tǒng)管理、監(jiān)控組配置管理、報警通知管理、用戶管理、參數(shù)管理、實時監(jiān)控服務(wù)管理、維護(hù)工作管理、記事簿管理、報表管理、深度監(jiān)控、監(jiān)控數(shù)據(jù)采集、監(jiān)控數(shù)據(jù)處理。
界面呈現(xiàn)部分:監(jiān)控系統(tǒng)的使用者包括直接運行維護(hù)人員和管理配置人員,因此我們將界面功能分成3部分,系統(tǒng)維護(hù)、統(tǒng)計、實時交易監(jiān)控查詢、定時任務(wù)監(jiān)控查詢。
系統(tǒng)維護(hù)包括:用戶管理、任務(wù)管理、服務(wù)監(jiān)聽啟停。
統(tǒng)計:功能統(tǒng)計查詢、核心實時交易統(tǒng)計。
實時交易監(jiān)控查詢:核心交易即時監(jiān)控、POSP交易即時監(jiān)控、通知平臺即時監(jiān)控。
后臺實現(xiàn)部分:數(shù)據(jù)采集和數(shù)據(jù)處理。
數(shù)據(jù)采集:系統(tǒng)采集,指的是使用現(xiàn)成的系統(tǒng)級命令,通過一定的命令參數(shù)在被監(jiān)控對象上取數(shù)據(jù),然后將得到的數(shù)據(jù)記錄按照統(tǒng)一的接口通過Socket方式傳送至監(jiān)控主機,如圖1所示。
數(shù)據(jù)處理:通過接收業(yè)務(wù)系統(tǒng)傳送過來的采集數(shù)據(jù),監(jiān)控系統(tǒng)會對這些數(shù)據(jù)進(jìn)行解析統(tǒng)計,然后根據(jù)事件的屬性分別記錄到對應(yīng)的臨時數(shù)據(jù)表內(nèi),如圖2所示。
2.2 概要設(shè)計
本系統(tǒng)把項目分成兩個工程來做,一個工程主要做定時監(jiān)控,另一個工程主要接收別的系統(tǒng)發(fā)來的報文,對它進(jìn)行解析等的操作。這樣把項目分開,降低了每一個工程的難度,使它們的職能更清楚明白。
界面呈現(xiàn)部分:定時任務(wù)監(jiān)控:也是定時任務(wù)信息查詢,從定時任務(wù)信息表里查詢滿足要求的信息記錄。統(tǒng)計:包括功能統(tǒng)計查詢,即時統(tǒng)計信息。所謂統(tǒng)計查詢就是根據(jù)系統(tǒng)名稱,從統(tǒng)計表里獲取滿足條件的記錄信息。即時統(tǒng)計信息,就是統(tǒng)計上1分鐘交易總筆數(shù)和上一分種平均響應(yīng)時間和分時段統(tǒng)計每個時間點之間的交易數(shù)據(jù)。
而后臺實現(xiàn)部分我們可以主要分為對的視圖監(jiān)聽、報文監(jiān)聽和日志文件監(jiān)聽。
視圖監(jiān)聽:是指遠(yuǎn)程被監(jiān)控系統(tǒng)提出借給我們的一個數(shù)據(jù)視圖數(shù)據(jù)庫接口,這個視圖是我系統(tǒng)方提出的,被監(jiān)控系統(tǒng)按照要求創(chuàng)建,被監(jiān)控系統(tǒng)提供ip地址,數(shù)據(jù)庫服務(wù)名,端口號,用戶名,密碼和視圖名,有了這些信息,我們就可以通過聯(lián)接遠(yuǎn)程數(shù)據(jù)庫讀取我們需要的被監(jiān)控系統(tǒng)數(shù)據(jù)信息。
報文監(jiān)聽:提供給我們端口號,這樣我們以報文形式接收被監(jiān)控系統(tǒng)的報文,通過這種方式得到我們想要的交易信息。接收到了報文以后解析報文,經(jīng)過處理變成我們想要的數(shù)據(jù)。
日志文件監(jiān)聽:日志處理程序運行在客戶端,定時讀取日志文件,經(jīng)過處理,獲取自己想要的信息。
技術(shù)架構(gòu):基于目前比較成熟的web應(yīng)用開發(fā)技術(shù),并結(jié)合技術(shù)可行性分析,本系統(tǒng)采用dorado+Spring+Hibernate的架構(gòu)。
構(gòu)建一個基于Java的Web用并不是一件容易的事情,在構(gòu)建一個應(yīng)用系統(tǒng)之前,首先要考慮的是采用哪種結(jié)構(gòu)來實現(xiàn)這個應(yīng)用系統(tǒng)。從總體上來說,開發(fā)人員面臨著如何構(gòu)建用戶界面、如何實現(xiàn)業(yè)務(wù)邏輯以及如何持久化用戶的數(shù)據(jù)等一系列問題。而每一個問題又面臨著一系列其它問題需要進(jìn)行處理,例如,哪些技術(shù)可以用來解決上面的問題?怎樣設(shè)計應(yīng)用的體系結(jié)構(gòu)可以實現(xiàn)這些組件的松散耦合,使其具有良好的靈活性。幸運的是,現(xiàn)在已經(jīng)存在很多這樣的框架可以分別解決上面所提出的各種問題。
Spring的特性和優(yōu)點:Spring的Web的框架是圍繞分發(fā)器(DispatcherServlet)來進(jìn)行設(shè)計的,DispatcherServlet會依據(jù)參數(shù)將請求分發(fā)到不同的控制器。在Spring框架中,除了控制器映射的配置外,還包括了視圖解析、本地化、主題解析、文件上傳等一系列的功能。
Hibernate的特性和優(yōu)點:Hibernate是采用ORM模式實現(xiàn)數(shù)據(jù)持久層的優(yōu)秀的Java組件,它提供了強大、高效的將Java對象進(jìn)行持久化操作的服務(wù)。利用Hibernate,開發(fā)人員可以方便地按照J(rèn)ava對象的結(jié)構(gòu)進(jìn)行持久化層的開發(fā),并可以使用Hibernate所提供的HQL()完工成Java對象和關(guān)系數(shù)據(jù)庫之間的轉(zhuǎn)換和操作。
2.3 詳細(xì)設(shè)計
在這個系統(tǒng)里,有核心系統(tǒng)、前置系統(tǒng)、POSP系統(tǒng)、文件傳輸系統(tǒng)、通知平臺前置、會計準(zhǔn)則轉(zhuǎn)換系統(tǒng)、催收系統(tǒng)、審批后臺系統(tǒng)、數(shù)據(jù)處理和報表平臺系統(tǒng)、反欺詐系統(tǒng)、案件管理系統(tǒng)、MTS系統(tǒng)這12個系統(tǒng)打交道。這每個系統(tǒng)至少有一個任務(wù)要接受監(jiān)控,這里的任務(wù)是指系統(tǒng)的視圖監(jiān)控,報文監(jiān)控或者日志文件監(jiān)控。
本系統(tǒng)分成兩個應(yīng)用系統(tǒng),一個運行在服務(wù)器端,一個運行在客戶端。服務(wù)器端程序主要用來監(jiān)聽接收各系統(tǒng)發(fā)來的報文信息,解析接收的報文信息,把有用的信息存入我們的數(shù)據(jù)庫以 及處理各種業(yè)務(wù)邏輯系統(tǒng),應(yīng)答各種服務(wù)請求。客戶端程序則運行在各被監(jiān)控系統(tǒng)端,處理客戶端應(yīng)用為我們服務(wù)器端服務(wù)。
在概要設(shè)計中我們已講到我們的監(jiān)控的方式共有三種,視圖監(jiān)控,報文監(jiān)控和日志文件監(jiān)控。
視圖監(jiān)控主要是為了讀取被監(jiān)控系統(tǒng)數(shù)據(jù)庫視圖里的記錄信息。并且這種操作會每天在固定的時間定時讀取數(shù)據(jù)。對于同一種監(jiān)控,不同的系統(tǒng),不同的任務(wù),每天需要操作的時間不同,時間間隔不同,并且對讀取的數(shù)據(jù)要求也不同。所以我們在數(shù)據(jù)庫TBL_DF_TASKMONDEF表時記錄這些信息,并記錄處理該監(jiān)控系統(tǒng)的該監(jiān)控任務(wù)的類。我們定義一個視圖監(jiān)聽處理接口,每個處理類都實現(xiàn)此接口下的process函數(shù),在此函數(shù)里我們獲得我們遠(yuǎn)程數(shù)據(jù)庫視圖里的數(shù)據(jù)并把它們存入自己的數(shù)據(jù)庫表里以備查詢之用,因為此過程要每天在固定的時間定時執(zhí)行,所以我們用定時器從數(shù)據(jù)庫里獲得執(zhí)行的開始時間,結(jié)束時間和間隔時間,并從數(shù)據(jù)庫里得到處理類的類名,利用反射機制得到該類的實例在定時器里執(zhí)行。
對各個系統(tǒng)的日志文件,我們只需要它的錯誤日志信息,為我們提供預(yù)警提示。對日志文件的監(jiān)控我們用了跟視圖監(jiān)控一樣的設(shè)計模式,只是處理的不是讀取視圖里的記錄,而是一行讀日志文件,并根據(jù)錯誤提示,找到有錯誤提示的這一行日志文件。存入自己的數(shù)據(jù)庫表里。在這里有一個問題,定時器定時讀數(shù)據(jù),就有可能讀重復(fù)數(shù)據(jù)插入數(shù)據(jù)庫,我們這時用一個臨時表,記錄上次讀的時間和讀到的日志文件的位置,重復(fù)讀時從這個位置開始讀。
監(jiān)聽接收報文的時候,系統(tǒng)通過IO接收報文,接收到的報文根據(jù)事先預(yù)定義好的各個系統(tǒng)報文格式解析報文,把解析好的報文放入我們的taskinfo類里,最后存入數(shù)據(jù)庫。
以上我用最通俗易懂的語言講解了本監(jiān)控系統(tǒng)里的監(jiān)控部分,對各系統(tǒng)實現(xiàn)了監(jiān)控,其最終結(jié)果是把有用信息存入本系統(tǒng)數(shù)據(jù)庫,進(jìn)而把監(jiān)控到的信息更直觀清楚的顯示給管理員以幫助他們做出正確的判斷和決定,有利于系統(tǒng)的維護(hù)和系統(tǒng)錯誤的發(fā)生。
2.4 總結(jié)
本系統(tǒng)實現(xiàn)了模塊化、層次化和參數(shù)化的設(shè)計思想。高性能:并發(fā)數(shù)據(jù)接收和處理、內(nèi)部分流。可擴充性:監(jiān)控對象增加、風(fēng)險策略、通知方式。易用性:界面友好、操作簡單、系統(tǒng)搭建便利。
smp系統(tǒng)的優(yōu)點:通過臨界值監(jiān)視盡早發(fā)現(xiàn)故障。統(tǒng)一Console管理多套環(huán)境,即時按預(yù)設(shè)通知方式通知到管理人員。用知識庫顯示處理方法準(zhǔn)確迅速的恢復(fù)。歷史積累的知識庫。任何人都可以簡便快速的實現(xiàn)穩(wěn)定的運行!
smp實現(xiàn)監(jiān)測的自動化和故障預(yù)警智能化,記錄各類檢測信息,從而能使各種故障信息即時通過終端界面、短信,Email、聲音來報警或預(yù)警,方便維護(hù)人員有效處理各種系統(tǒng)正常運行,減少運維部門的運維成本,實現(xiàn)信息維護(hù)服務(wù)被動轉(zhuǎn)為主動性,確保企業(yè)信息平臺高效穩(wěn)定運行!
參考資料:
[1] 孫衛(wèi)琴.Java網(wǎng)絡(luò)編程精解[M].北京:電子工業(yè)出版社,2007.
[2] (美)弗里曼.Head First設(shè)計模式[M].北京:中國電力出版社,2007.
[3] (美)沃爾斯,布雷登巴赫.Spring in Action(中文版)[M].李磊,程立,周悅虹,譯.北京:人民郵電出版社,2006.
[4] 李剛.輕量級J2EE企業(yè)應(yīng)用實戰(zhàn)[M].北京:電子工業(yè)出版社,2007.
[5] (德)鮑爾.Hibernate戰(zhàn)[M].楊春花.彭永康.俞黎敏,譯.北京:人民郵電出版社,2007.