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