專利名稱:一種j2ee應(yīng)用獲取unix主機(jī)性能數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IT服務(wù)管理工具領(lǐng)域,具體地說(shuō)是一種J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法。
背景技術(shù):
從運(yùn)維人員的角度,操作系統(tǒng)性能情況的掌握通常是系統(tǒng)管理通過(guò)操作系統(tǒng)命令,或者一些單一的小工具去獲得,系統(tǒng)問題的解決快慢以及質(zhì)量如何,往往取決于運(yùn)維人員的能力,不利于對(duì)問題知識(shí)的累積;而且問題的解決通常是一種被動(dòng)的救火隊(duì)式的,問題都是在發(fā)生以后才意識(shí)到,而且需要運(yùn)維工程師緊急支援;從IT服務(wù)管理的角度需要建立一套主動(dòng)的方式,通過(guò)監(jiān)控工具來(lái)主動(dòng)監(jiān)控主機(jī)的運(yùn)行情況,并在發(fā)現(xiàn)問題的時(shí)候及時(shí)通知到系統(tǒng)管理員解決,這樣提前預(yù)防不至于在問題發(fā)生時(shí)對(duì)業(yè)務(wù)系統(tǒng)造成嚴(yán)重影響之后再去解決。傳統(tǒng)的監(jiān)控工具主機(jī)方面工具多數(shù)不能形成歷史數(shù)據(jù)分析和告警方面的工作;在運(yùn)維體系架構(gòu)中監(jiān)控工具不再單單是一個(gè)實(shí)時(shí)工具,而是輔助主要運(yùn)維人員快速解決問題的一個(gè)“觸發(fā)器”,在整個(gè)問題解決過(guò)程中發(fā)揮重要的作用,從問題的告警到后期性能數(shù)據(jù)分析,需要監(jiān)控系統(tǒng)有完整的架構(gòu)體系。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)任務(wù)是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法。所述UNIX主機(jī)性能數(shù)據(jù)包括CPU、網(wǎng)絡(luò)、內(nèi)存、硬盤等的性能數(shù)據(jù)。本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的一種J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法,其特點(diǎn)是,通過(guò)JNI (JNI是Java Native hterface,Java本地調(diào)用的縮寫,JNI 標(biāo)準(zhǔn)是java平臺(tái)的一部分,它允許Java代碼和其他語(yǔ)言寫的代碼進(jìn)行交互)接口實(shí)現(xiàn)主機(jī)性能數(shù)據(jù)的靜態(tài)接口,在J2EE系統(tǒng)中通過(guò)定時(shí)器實(shí)現(xiàn)主機(jī)心跳數(shù)據(jù)的采集,并通過(guò)閾值分析形成對(duì)系統(tǒng)運(yùn)維人員有效的告警數(shù)據(jù),具體步驟如下
1)底層數(shù)據(jù)采集
編寫JNI接口實(shí)現(xiàn)的本地靜態(tài)方法;通過(guò)java socket編程實(shí)現(xiàn)將獲取的主機(jī)信息提供給J2EE架構(gòu)應(yīng)用程序,以實(shí)現(xiàn)J2EE架構(gòu)主機(jī)監(jiān)控系統(tǒng);
2)心跳式采集
通過(guò)定時(shí)器實(shí)現(xiàn)心跳式的性能數(shù)據(jù)采集;
3)數(shù)據(jù)的過(guò)濾分析及告警產(chǎn)生
數(shù)據(jù)的過(guò)濾分析通過(guò)閾值條件在服務(wù)器端進(jìn)行處理,通過(guò)資源的閾值策略能把關(guān)鍵數(shù)據(jù)形成進(jìn)一步的信息,通過(guò)規(guī)則引擎負(fù)責(zé)各種告警的判斷分析。所述心跳式采集可通過(guò)以下兩種方式實(shí)現(xiàn)一、通過(guò)java.util. Timer實(shí)現(xiàn)數(shù)據(jù)的心跳式采集;
二、通過(guò)頁(yè)面的Ajax技術(shù)實(shí)現(xiàn)頁(yè)面的實(shí)時(shí)動(dòng)態(tài)效果。步驟3中所述判斷分析的分析規(guī)則包括
a、邏輯型規(guī)則,用于判斷多個(gè)事件以何種條件發(fā)生將意味著故障的發(fā)生;
b、算術(shù)型規(guī)則,用于判斷多個(gè)事件的值滿足何種算數(shù)條件意味著故障發(fā)生; C、次數(shù)型規(guī)則,用于判斷事件是否頻繁發(fā)生達(dá)到特定的次數(shù);
d、時(shí)間型規(guī)則,用于判斷事件是否發(fā)生在特定的時(shí)間段,或者事件持續(xù)告警超過(guò)特定的時(shí)長(zhǎng)。本發(fā)明的J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法描述的是J2EE架構(gòu)下實(shí)現(xiàn)的 B/S (Browser/Server,瀏覽器/服務(wù)器)模式企業(yè)監(jiān)控應(yīng)用系統(tǒng)的主機(jī)監(jiān)控模塊部分,與現(xiàn)有技術(shù)相比具有以下突出的有益效果
一)為實(shí)現(xiàn)J2EE應(yīng)用程序模式的主機(jī)性能監(jiān)控系統(tǒng)提供可行性方案;
二)數(shù)據(jù)采集成通過(guò)JNI靜態(tài)接口實(shí)現(xiàn),而通過(guò)java程序?qū)崿F(xiàn)的靜態(tài)接口能夠提供給外部J2EE接口的java程序進(jìn)行方便調(diào)用;
三)通過(guò)定時(shí)器實(shí)現(xiàn)心跳數(shù)據(jù)的采集,并通過(guò)閾值分析以及相應(yīng)規(guī)則形成告警、 事件等信息,使系統(tǒng)管理員能夠獲得主機(jī)性能數(shù)據(jù)反應(yīng)的問題;
四)能夠發(fā)揮網(wǎng)絡(luò)無(wú)處不在的好處,在B/S架構(gòu)下部署在網(wǎng)絡(luò)上的應(yīng)用可以通過(guò)郵件、短信的功能快速的將主機(jī)的“不好狀況”反饋給系統(tǒng)維護(hù)人員,使得運(yùn)維人員快速反應(yīng)、及時(shí)處理。
附圖1是本發(fā)明方法中主機(jī)數(shù)據(jù)采集模塊結(jié)構(gòu)示意附圖2是本發(fā)明方法中應(yīng)用Ajax技術(shù)實(shí)現(xiàn)頁(yè)面的實(shí)時(shí)動(dòng)態(tài)效果的結(jié)構(gòu)框圖。
具體實(shí)施例方式參照說(shuō)明書附圖以具體實(shí)施例對(duì)本發(fā)明的J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法作以下詳細(xì)地說(shuō)明。實(shí)施例
本發(fā)明的J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法通過(guò)JNI接口實(shí)現(xiàn)主機(jī)性能數(shù)據(jù)的靜態(tài)接口,在J2EE系統(tǒng)中通過(guò)定時(shí)器實(shí)現(xiàn)主機(jī)心跳數(shù)據(jù)的采集,并通過(guò)閾值分析形成對(duì)系統(tǒng)運(yùn)維人員有效的告警數(shù)據(jù)。具體步驟如下 1)底層數(shù)據(jù)采集
如附圖1所示,底層數(shù)據(jù)采集由JNI實(shí)現(xiàn),在AIX (UNIX操作系統(tǒng))主機(jī)下主要獲取系統(tǒng)狀態(tài)信息包括CPU、網(wǎng)絡(luò)、內(nèi)存、硬盤信息,JNI通過(guò)AIX下提供Performance Agent Too 1 s 軟件包,編譯使用的類庫(kù)為libperfstat. a,編譯時(shí)需要增加-Iperfstat項(xiàng)。JNI需要編寫java調(diào)用的本地靜態(tài)方法,通過(guò)java實(shí)現(xiàn)的代理程序可以直接調(diào)用靜態(tài)方法獲取主機(jī)的CPU、內(nèi)存、網(wǎng)絡(luò)、硬盤信息,并將獲取主機(jī)性能數(shù)據(jù),通過(guò)java的socket編程就可以將主機(jī)信息傳輸給J2EE應(yīng)用程序,從而實(shí)現(xiàn)J2EE架構(gòu)的主機(jī)性能監(jiān)控系統(tǒng)。2)心跳式采集
在J2EE系統(tǒng)中通過(guò)定時(shí)器實(shí)現(xiàn)心跳式的性能數(shù)據(jù)采集。一種是后臺(tái)執(zhí)行可通過(guò) java. util. Timer 實(shí)現(xiàn),java. util. Timer 是 Sun JDK 提供的一種計(jì)時(shí)器,用于使后臺(tái)線程按計(jì)劃執(zhí)行指定任務(wù),這些任務(wù)可以被執(zhí)行一次,也可以被定期執(zhí)行。每個(gè)Timer對(duì)象對(duì)應(yīng)一個(gè)后臺(tái)線程,順序地執(zhí)行所有計(jì)時(shí)器任務(wù)。通過(guò)對(duì) JNI接口的定時(shí)執(zhí)行(通常間隔為一分鐘的整數(shù)倍)獲取主機(jī)性能數(shù)據(jù),從而記錄有效的、連續(xù)的性能數(shù)據(jù)。另外一種通過(guò)頁(yè)面的Ajax技術(shù)實(shí)現(xiàn)頁(yè)面的實(shí)時(shí)動(dòng)態(tài)效果,而以GWT作為Ajax開發(fā)工具,可以快速方便的協(xié)助開發(fā)。使用JSON作為服務(wù)器端和客戶端通訊的數(shù)據(jù)交換格式,可以更清晰地定義和傳遞相對(duì)復(fù)雜的結(jié)構(gòu)化數(shù)據(jù)(如附圖2所示)。3)數(shù)據(jù)的過(guò)濾分析及告警產(chǎn)生
數(shù)據(jù)的過(guò)濾分析是通過(guò)閾值條件在服務(wù)器端進(jìn)行處理,通過(guò)資源的閾值策略能把關(guān)鍵數(shù)據(jù)形成進(jìn)一步的信息,通過(guò)規(guī)則引擎負(fù)責(zé)各種告警的判斷分析。能主要提供以下分析規(guī)則
a)邏輯型規(guī)則
用于判斷多個(gè)事件以何種條件發(fā)生將意味著故障的發(fā)生,如 A and B,代表A和B事件必須同時(shí)發(fā)生則判斷為故障。A or B,代表A或者B任意一個(gè)發(fā)生即為故障。b) 算術(shù)型規(guī)則
用于判斷多個(gè)事件的值滿足何種算數(shù)條件意味著故障發(fā)生,這種判斷規(guī)則對(duì)于業(yè)務(wù)稽核非常重要,因?yàn)殡娦判袠I(yè)中,業(yè)務(wù)規(guī)則的稽核,往往意味著許多數(shù)值之間遵循特定的配平關(guān)系。如
A + B<100,代表事件A的值和B的值之和如果小于100,則認(rèn)為故障發(fā)生。A+B!=C,代表事件A和B的值之和如果不等于C的值,則認(rèn)為故障發(fā)生。c)次數(shù)型規(guī)則
用于判斷事件是否頻繁發(fā)生達(dá)到特定的次數(shù)。在實(shí)際使用環(huán)境中,某種事件發(fā)生一次, 一般不是什么大問題,比如,偶然發(fā)生的CPU利用率過(guò)高的告警,并不會(huì)對(duì)業(yè)務(wù)系統(tǒng)造成影響,但如果在短時(shí)間內(nèi)CPU利用率頻繁告警,則可能意味著較嚴(yán)重的問題。d) 時(shí)間型規(guī)則
用于判斷事件是否發(fā)生在特定的時(shí)間段,或者事件持續(xù)告警超過(guò)特定的時(shí)長(zhǎng)。事件關(guān)聯(lián)分析/業(yè)務(wù)稽核引擎可以識(shí)別以上規(guī)則的任意組合,同時(shí),還允許在已經(jīng)定義的故障的基礎(chǔ)上,定義告警之間的多種關(guān)聯(lián)規(guī)則。同時(shí),規(guī)則引擎提供可擴(kuò)充的內(nèi)置函數(shù)支持,進(jìn)一步增強(qiáng)告警能力,包括
權(quán)利要求
1.一種J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法,其特征在于通過(guò)JNI接口實(shí)現(xiàn)主機(jī)性能數(shù)據(jù)的靜態(tài)接口,在J2EE系統(tǒng)中通過(guò)定時(shí)器實(shí)現(xiàn)主機(jī)心跳數(shù)據(jù)的采集,并通過(guò)閾值分析形成對(duì)系統(tǒng)運(yùn)維人員有效的告警數(shù)據(jù),具體步驟如下1)底層數(shù)據(jù)采集編寫JNI接口實(shí)現(xiàn)的本地靜態(tài)方法;通過(guò)java socket編程實(shí)現(xiàn)將獲取的主機(jī)信息提供給J2EE架構(gòu)應(yīng)用程序,以實(shí)現(xiàn)J2EE架構(gòu)主機(jī)監(jiān)控系統(tǒng);2)心跳式采集通過(guò)定時(shí)器實(shí)現(xiàn)心跳式的性能數(shù)據(jù)采集;3)數(shù)據(jù)的過(guò)濾分析及告警產(chǎn)生數(shù)據(jù)的過(guò)濾分析通過(guò)閾值條件在服務(wù)器端進(jìn)行處理,通過(guò)資源的閾值策略能把關(guān)鍵數(shù)據(jù)形成進(jìn)一步的信息,通過(guò)規(guī)則引擎負(fù)責(zé)各種告警的判斷分析。
2.根據(jù)權(quán)利要求1所述的J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法,其特征在于通過(guò)java. util. Timer實(shí)現(xiàn)數(shù)據(jù)的心跳式采集。
3.根據(jù)權(quán)利要求1所述的J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法,其特征在于心跳式采集過(guò)程中通過(guò)頁(yè)面的Ajax技術(shù)實(shí)現(xiàn)頁(yè)面的實(shí)時(shí)動(dòng)態(tài)效果。
4.根據(jù)權(quán)利要求1所述的J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法,其特征在于步驟3中所述判斷分析的分析規(guī)則包括邏輯型規(guī)則,用于判斷多個(gè)事件以何種條件發(fā)生將意味著故障的發(fā)生;算術(shù)型規(guī)則,用于判斷多個(gè)事件的值滿足何種算數(shù)條件意味著故障發(fā)生;次數(shù)型規(guī)則,用于判斷事件是否頻繁發(fā)生達(dá)到特定的次數(shù);時(shí)間型規(guī)則,用于判斷事件是否發(fā)生在特定的時(shí)間段,或者事件持續(xù)告警超過(guò)特定的時(shí)長(zhǎng)。
全文摘要
本發(fā)明公開了一種J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法,屬于IT服務(wù)管理工具領(lǐng)域。該方法通過(guò)JNI接口實(shí)現(xiàn)主機(jī)性能數(shù)據(jù)的靜態(tài)接口,在J2EE系統(tǒng)中通過(guò)定時(shí)器實(shí)現(xiàn)主機(jī)心跳數(shù)據(jù)的采集,并通過(guò)閾值分析形成對(duì)系統(tǒng)運(yùn)維人員有效的告警數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明的J2EE應(yīng)用獲取UNIX主機(jī)性能數(shù)據(jù)的方法可以形成對(duì)運(yùn)維人員更有價(jià)值的數(shù)據(jù),使得運(yùn)維人員快速反應(yīng)、及時(shí)處理,具有很好的推廣應(yīng)用價(jià)值。
文檔編號(hào)H04L12/26GK102412989SQ20111036212
公開日2012年4月11日 申請(qǐng)日期2011年11月16日 優(yōu)先權(quán)日2011年11月16日
發(fā)明者匡立武, 宋智強(qiáng), 武志強(qiáng), 王春生 申請(qǐng)人:山東浪潮齊魯軟件產(chǎn)業(yè)股份有限公司