本發(fā)明屬于數(shù)據(jù)采集領(lǐng)域,具體涉及一種基于網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)采集系統(tǒng)及方法。
背景技術(shù):
隨著信息化應(yīng)用的不斷加深,企業(yè)對(duì)信息系統(tǒng)的依賴程度越發(fā)緊密。任何應(yīng)用設(shè)備的故障都會(huì)對(duì)業(yè)務(wù)的正常運(yùn)行造成非常大的影響。因此,采集網(wǎng)絡(luò)資源(防火墻、交換機(jī)、路由器、主機(jī)、中間件及數(shù)據(jù)庫(kù)等)的配置、運(yùn)行、性能等數(shù)據(jù),為有效判斷設(shè)備運(yùn)行情況提供依據(jù)。然而市場(chǎng)上的類(lèi)似工具多以使用線程池與系統(tǒng)集成運(yùn)行的運(yùn)行方式。
基于j2ee和.net為基礎(chǔ)技術(shù)平臺(tái),采用snmp、ssh、ping、jdbc等協(xié)議進(jìn)行網(wǎng)絡(luò)設(shè)備、主機(jī)、數(shù)據(jù)庫(kù)、中間件運(yùn)行狀態(tài)和配置信息的采集、展示和管理的自有開(kāi)發(fā)技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種基于網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)采集系統(tǒng)及方法。
本發(fā)明采用以下技術(shù)方案:一種基于網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)采集系統(tǒng),其包括采集引擎及規(guī)則引擎;所述采集引擎包括采集控制器、定時(shí)調(diào)度框架、消息服務(wù)接口、命令控制插件、設(shè)備發(fā)現(xiàn)插件、設(shè)備采集插件以及規(guī)則引擎;當(dāng)采集系統(tǒng)啟動(dòng)時(shí),自動(dòng)加載定時(shí)框架,到達(dá)指定時(shí)間后,由定時(shí)框架啟動(dòng)插件進(jìn)行設(shè)備數(shù)據(jù)采集;所述采集控制器用于接收系統(tǒng)監(jiān)控控制命令;設(shè)備采集插件安裝完畢后,采集控制器按照安裝順序依次啟動(dòng)設(shè)備采集插件,在啟動(dòng)過(guò)程中為設(shè)備采集插件分配調(diào)度作業(yè)以及數(shù)據(jù)上報(bào);設(shè)備采集插件啟動(dòng)后按照之前分配的調(diào)度作業(yè)依據(jù)對(duì)應(yīng)的監(jiān)控協(xié)議工具獲取設(shè)備數(shù)據(jù),通過(guò)消息服務(wù)接口將數(shù)據(jù)上報(bào)給規(guī)則引擎。
進(jìn)一步的,還包括用于監(jiān)控、處理采集數(shù)據(jù)的監(jiān)控引擎。
較佳的,所述監(jiān)控引擎運(yùn)行框架使用apachefelix框架,主控器接收控制臺(tái)命令進(jìn)行監(jiān)控引擎的安裝、啟停、卸載操作,監(jiān)控引擎啟動(dòng)后由工具服務(wù)提供定時(shí)的協(xié)議操作與消息數(shù)據(jù)處理操作接口完成監(jiān)控任務(wù)。
本發(fā)明還提供一種基于網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)采集方法,其包括以下步驟:s1:當(dāng)采集器啟動(dòng)時(shí),自動(dòng)加載定時(shí)框架,到達(dá)指定時(shí)間后,由定時(shí)框架啟動(dòng)插件進(jìn)行設(shè)備數(shù)據(jù)采集;s2:設(shè)備采集插件采集基本指標(biāo)時(shí)首先判斷采集是否為性能數(shù)據(jù),若基礎(chǔ)指標(biāo)為性能數(shù)據(jù)則直接采集,將數(shù)據(jù)存入內(nèi)存中,并進(jìn)入s4;若基礎(chǔ)指標(biāo)非性能指標(biāo)則執(zhí)行s3;s3:采集設(shè)備關(guān)于此指標(biāo)的數(shù)據(jù)并與嵌入式數(shù)據(jù)庫(kù)中的信息進(jìn)行對(duì)比;若數(shù)據(jù)庫(kù)中取值為空或者兩者數(shù)據(jù)不一致,則將其指標(biāo)數(shù)據(jù)存入內(nèi)存中并更新數(shù)據(jù)庫(kù)中的信息,最終將這些基礎(chǔ)指標(biāo)數(shù)據(jù)傳送至規(guī)則引擎;s4:規(guī)則引擎對(duì)基礎(chǔ)指標(biāo)數(shù)據(jù)根據(jù)相關(guān)策略進(jìn)行加工處理,并將處理之后的數(shù)據(jù)通過(guò)消息服務(wù)接口將這些設(shè)備數(shù)據(jù)上報(bào)至上一級(jí)mq,由監(jiān)控引擎進(jìn)行監(jiān)控。
進(jìn)一步的,s4中監(jiān)控引擎對(duì)數(shù)據(jù)的監(jiān)控包括以下步驟:s41:采集引擎啟動(dòng)時(shí)向消息服務(wù)器發(fā)送啟動(dòng)信息,其中包括代理id,安裝位置,內(nèi)置采集代理信息;s42:系統(tǒng)控制臺(tái)通過(guò)監(jiān)聽(tīng)消息服務(wù)隊(duì)列收到監(jiān)控引擎啟動(dòng)信息;s43:系統(tǒng)控制臺(tái)將引擎信息存儲(chǔ)在數(shù)據(jù)庫(kù)引擎運(yùn)行信息表中;s44:系統(tǒng)控制臺(tái)讀取監(jiān)控引擎信息;s45:系統(tǒng)控制臺(tái):下發(fā)監(jiān)控代理同步命令;s46:監(jiān)控引擎中的引擎控制器接收引擎同步命令,通過(guò)廣播命令中引擎id判斷是否為自己的命令信息;s47:監(jiān)控引擎確認(rèn)命令信息后,向系統(tǒng)控制臺(tái)通過(guò)http請(qǐng)求方式下載引擎關(guān)聯(lián)的監(jiān)控代理;s48:監(jiān)控引擎控制器將下載到引擎安裝目錄下的監(jiān)控代理解壓并安裝啟動(dòng),開(kāi)始執(zhí)行監(jiān)控任務(wù)。
進(jìn)一步的,s3中規(guī)則引擎進(jìn)行如下處理:s31:規(guī)則引擎啟動(dòng)加載指標(biāo)告警閾值規(guī)則;s32:監(jiān)控引擎上報(bào)監(jiān)控?cái)?shù)據(jù),規(guī)則引擎接收監(jiān)控?cái)?shù)據(jù);規(guī)則引擎預(yù)先存儲(chǔ)的應(yīng)用規(guī)則處理監(jiān)控?cái)?shù)據(jù);并將指標(biāo)、告警數(shù)據(jù)存入內(nèi)存隊(duì)列;s33:規(guī)則引擎將告警信息推送至語(yǔ)音消息隊(duì)列、拓?fù)湎㈥?duì)列;s34:規(guī)則引擎存儲(chǔ)器將指標(biāo)、告警信息更新存儲(chǔ)至緩存并存儲(chǔ)至數(shù)據(jù)庫(kù);s35:系統(tǒng)控制臺(tái)讀取實(shí)時(shí)指標(biāo)、告警信息;或系統(tǒng)控制臺(tái)根據(jù)需求讀取歷史指標(biāo)、告警信息;s36:語(yǔ)音告警終端接收告警信息并播報(bào);且拓?fù)湔宫F(xiàn)接收告警信息。
進(jìn)一步的,采集引擎第一次啟動(dòng)時(shí)需通過(guò)腳本命令人工啟動(dòng)主程序。
進(jìn)一步的,還包括s5:由系統(tǒng)控制臺(tái)對(duì)系統(tǒng)進(jìn)行維護(hù)后通過(guò)mq給采集引擎發(fā)送命令,命令完成后會(huì)給固定mq的固定隊(duì)列發(fā)送部署成功的命令。
與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案對(duì)網(wǎng)絡(luò)設(shè)備即應(yīng)用實(shí)現(xiàn)實(shí)時(shí)檢測(cè),跨地區(qū)靈活部署,監(jiān)控代理熱部署。
附圖說(shuō)明
圖1為采集引擎的主要結(jié)構(gòu)原理框圖。
圖2為監(jiān)控引擎的結(jié)構(gòu)示意圖。
圖3為主要流程示意圖。
圖4為監(jiān)控引擎監(jiān)控流程示意圖。
圖5為規(guī)則引擎報(bào)警流程示意圖。
圖6為采集引擎采集流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步解釋說(shuō)明。
一種基于網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)采集系統(tǒng),其包括采集引擎及規(guī)則引擎;所述采集引擎包括采集控制器、定時(shí)調(diào)度框架、消息服務(wù)接口、命令控制插件、設(shè)備發(fā)現(xiàn)插件、設(shè)備采集插件以及規(guī)則引擎;當(dāng)采集系統(tǒng)啟動(dòng)時(shí),自動(dòng)加載定時(shí)框架,到達(dá)指定時(shí)間后,由定時(shí)框架啟動(dòng)插件進(jìn)行設(shè)備數(shù)據(jù)采集;所述采集控制器用于接收系統(tǒng)監(jiān)控控制命令;設(shè)備采集插件安裝完畢后,采集控制器按照安裝順序依次啟動(dòng)設(shè)備采集插件,在啟動(dòng)過(guò)程中為設(shè)備采集插件分配調(diào)度作業(yè)以及數(shù)據(jù)上報(bào);設(shè)備采集插件啟動(dòng)后按照之前分配的調(diào)度作業(yè)依據(jù)對(duì)應(yīng)的監(jiān)控協(xié)議工具獲取設(shè)備數(shù)據(jù),通過(guò)消息服務(wù)接口將數(shù)據(jù)上報(bào)給規(guī)則引擎。主要結(jié)構(gòu)原理圖參見(jiàn)圖1。
啟動(dòng)采集系統(tǒng)由采集控制器負(fù)責(zé)接收系統(tǒng)監(jiān)控控制命令,收到系統(tǒng)發(fā)來(lái)的執(zhí)行監(jiān)控命令,控制器會(huì)按照命令描述向系統(tǒng)申請(qǐng)?jiān)O(shè)備采集插件,并自動(dòng)下載安裝。收到停止監(jiān)控命令,控制器會(huì)按照需要命令停止指定的監(jiān)控任務(wù)并卸載設(shè)備采集插件。
采集器工作過(guò)程:
(1)將采集代理安裝至各被監(jiān)控設(shè)備所屬網(wǎng)絡(luò),并配置采集消息接口可以接通消息服務(wù)。
(2)啟動(dòng)采集器由采集控制器負(fù)責(zé)接收系統(tǒng)監(jiān)控控制命令,收到系統(tǒng)發(fā)來(lái)的執(zhí)行監(jiān)控命令,控制器會(huì)按照命令描述向系統(tǒng)申請(qǐng)?jiān)O(shè)備采集插件,并自動(dòng)下載安裝。收到停止監(jiān)控命令,控制器會(huì)按照需要命令停止指定的監(jiān)控任務(wù)并卸載設(shè)備采集插件。
(3)設(shè)備采集插件安裝完畢后,控制器按照安裝順序依次啟動(dòng)設(shè)備采集插件,在啟動(dòng)過(guò)程中為采集插件分配調(diào)度作業(yè),以及數(shù)據(jù)上報(bào)消息接口服務(wù)。
(4)設(shè)備采集插件啟動(dòng)后會(huì)按照之前分配的調(diào)度作業(yè)依據(jù)對(duì)應(yīng)的監(jiān)控協(xié)議工具獲取設(shè)備數(shù)據(jù),通過(guò)消息服務(wù)接口將數(shù)據(jù)上報(bào)給規(guī)則引擎進(jìn)行指標(biāo)告警數(shù)據(jù)。
進(jìn)一步的,還包括用于監(jiān)控、處理采集數(shù)據(jù)的監(jiān)控引擎。
較佳的,所述監(jiān)控引擎運(yùn)行框架使用apachefelix框架,主控器接收控制臺(tái)命令進(jìn)行監(jiān)控引擎的安裝、啟停、卸載操作,監(jiān)控引擎啟動(dòng)后由工具服務(wù)提供定時(shí)的協(xié)議操作與消息數(shù)據(jù)處理操作接口完成監(jiān)控任務(wù)。結(jié)構(gòu)示意圖參見(jiàn)圖2。
其中采集引擎采用osgi技術(shù)(openservicegatewayinitiative面向java的動(dòng)態(tài)模型)開(kāi)發(fā)平臺(tái),基于osgi可靈活采集擴(kuò)展的框架,osgi平臺(tái)已經(jīng)標(biāo)準(zhǔn)化了一個(gè)執(zhí)行環(huán)境,能夠被動(dòng)態(tài)安裝、開(kāi)啟、關(guān)閉、更新和卸載監(jiān)控代理。實(shí)現(xiàn)了靈活部署與數(shù)據(jù)傳輸。
本發(fā)明還提供一種基于網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)采集方法,其包括以下步驟:s1:當(dāng)采集器啟動(dòng)時(shí),自動(dòng)加載定時(shí)框架,到達(dá)指定時(shí)間后,由定時(shí)框架啟動(dòng)插件進(jìn)行設(shè)備數(shù)據(jù)采集;s2:設(shè)備采集插件采集基本指標(biāo)時(shí)首先判斷采集是否為性能數(shù)據(jù),若基礎(chǔ)指標(biāo)為性能數(shù)據(jù)則直接采集,將數(shù)據(jù)存入內(nèi)存中,并進(jìn)入s4;若基礎(chǔ)指標(biāo)非性能指標(biāo)則執(zhí)行s3;s3:采集設(shè)備關(guān)于此指標(biāo)的數(shù)據(jù)并與嵌入式數(shù)據(jù)庫(kù)中的信息進(jìn)行對(duì)比;若數(shù)據(jù)庫(kù)中取值為空或者兩者數(shù)據(jù)不一致,則將其指標(biāo)數(shù)據(jù)存入內(nèi)存中并更新數(shù)據(jù)庫(kù)中的信息,最終將這些基礎(chǔ)指標(biāo)數(shù)據(jù)傳送至規(guī)則引擎;s4:規(guī)則引擎對(duì)基礎(chǔ)指標(biāo)數(shù)據(jù)根據(jù)相關(guān)策略進(jìn)行加工處理,并將處理之后的數(shù)據(jù)通過(guò)消息服務(wù)接口將這些設(shè)備數(shù)據(jù)上報(bào)至上一級(jí)mq,由監(jiān)控引擎進(jìn)行監(jiān)控。具體流程示意圖參見(jiàn)圖3。
進(jìn)一步的,s4中監(jiān)控引擎對(duì)數(shù)據(jù)的監(jiān)控包括以下步驟:s41:采集引擎啟動(dòng)時(shí)向消息服務(wù)器發(fā)送啟動(dòng)信息,其中包括代理id,安裝位置,內(nèi)置采集代理信息;s42:系統(tǒng)控制臺(tái)通過(guò)監(jiān)聽(tīng)消息服務(wù)隊(duì)列收到監(jiān)控引擎啟動(dòng)信息;s43:系統(tǒng)控制臺(tái)將引擎信息存儲(chǔ)在數(shù)據(jù)庫(kù)引擎運(yùn)行信息表中;s44:系統(tǒng)控制臺(tái)讀取監(jiān)控引擎信息;s45:系統(tǒng)控制臺(tái):下發(fā)監(jiān)控代理同步命令;s46:監(jiān)控引擎中的引擎控制器接收引擎同步命令,通過(guò)廣播命令中引擎id判斷是否為自己的命令信息;s47:監(jiān)控引擎確認(rèn)命令信息后,向系統(tǒng)控制臺(tái)通過(guò)http請(qǐng)求方式下載引擎關(guān)聯(lián)的監(jiān)控代理;s48:監(jiān)控引擎控制器將下載到引擎安裝目錄下的監(jiān)控代理解壓并安裝啟動(dòng),開(kāi)始執(zhí)行監(jiān)控任務(wù)。流程示意圖參見(jiàn)圖4。
進(jìn)一步的,s3中規(guī)則引擎進(jìn)行如下處理:s31:規(guī)則引擎啟動(dòng)加載指標(biāo)告警閾值規(guī)則;s32:監(jiān)控引擎上報(bào)監(jiān)控?cái)?shù)據(jù),規(guī)則引擎接收監(jiān)控?cái)?shù)據(jù);規(guī)則引擎預(yù)先存儲(chǔ)的應(yīng)用規(guī)則處理監(jiān)控?cái)?shù)據(jù);并將指標(biāo)、告警數(shù)據(jù)存入內(nèi)存隊(duì)列;s33:規(guī)則引擎將告警信息推送至語(yǔ)音消息隊(duì)列、拓?fù)湎㈥?duì)列;s34:規(guī)則引擎存儲(chǔ)器將指標(biāo)、告警信息更新存儲(chǔ)至緩存并存儲(chǔ)至數(shù)據(jù)庫(kù);s35:系統(tǒng)控制臺(tái)讀取實(shí)時(shí)指標(biāo)、告警信息;或系統(tǒng)控制臺(tái)根據(jù)需求讀取歷史指標(biāo)、告警信息;s36:語(yǔ)音告警終端接收告警信息并播報(bào);且拓?fù)湔宫F(xiàn)接收告警信息。流程示意圖參見(jiàn)圖5。
進(jìn)一步的,采集引擎第一次啟動(dòng)時(shí)需通過(guò)腳本命令人工啟動(dòng)主程序。
進(jìn)一步的,還包括s5:由系統(tǒng)控制臺(tái)對(duì)系統(tǒng)進(jìn)行維護(hù)后通過(guò)mq給采集引擎發(fā)送命令,命令完成后會(huì)給固定mq的固定隊(duì)列發(fā)送部署成功的命令。
具體采集引擎的過(guò)程示意圖參見(jiàn)圖6。采集引擎被放置在某網(wǎng)段的應(yīng)用服務(wù)器上,第一次啟動(dòng)時(shí)通過(guò)腳本命令人工啟動(dòng)主程序,以后就不需要人工對(duì)其進(jìn)行操作了。
管理控制臺(tái)在完成了一系列的維護(hù)工作之后,會(huì)通過(guò)消息隊(duì)列給采集代理發(fā)送命令,命令中包括了命令的名稱和參數(shù)。例如安裝監(jiān)控模板命令,采集代理在第一次啟動(dòng)后是沒(méi)有采集實(shí)例在運(yùn)行的。它會(huì)監(jiān)聽(tīng)固定mq的固定主題,當(dāng)獲取到對(duì)應(yīng)id的安裝監(jiān)控模板的指令后,會(huì)將命令中的參數(shù)轉(zhuǎn)化成模板bundle,部署至自己的文件內(nèi)。部署完成后會(huì)給固定mq的固定隊(duì)列發(fā)送部署成功的命令。之后按照部署的監(jiān)控模板中的參數(shù)頻率,啟動(dòng)不同頻率的調(diào)度程序,按照監(jiān)控模板中的資源信息去連接特定的資源獲取參數(shù)信息,將信息進(jìn)行整理發(fā)送到固定mq的固定隊(duì)列上。
以上是本發(fā)明型的較佳實(shí)施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時(shí),均屬于本發(fā)明的保護(hù)范圍。