本發(fā)明涉及數(shù)據(jù)監(jiān)控的技術領域,尤其涉及一種監(jiān)控數(shù)據(jù)實時上推方法,以及監(jiān)控數(shù)據(jù)實時上推系統(tǒng)。
背景技術:
在數(shù)據(jù)監(jiān)控方面,目前一般是通過應用程序將監(jiān)控數(shù)據(jù)實時上推到監(jiān)控系統(tǒng)的客戶端,或者轉發(fā)給專門的服務負責集中上推。
但是,存在如下缺陷:
1、每個應用程序都要實現(xiàn)繁瑣和死板的發(fā)送格式化監(jiān)控數(shù)據(jù)的模塊。
2、應用程序需要保存原始的歷史數(shù)據(jù),因為監(jiān)控系統(tǒng)保存的數(shù)據(jù)是格式化之后的,不便于檢索。
技術實現(xiàn)要素:
為克服現(xiàn)有技術的缺陷,本發(fā)明要解決的技術問題是提供了一種監(jiān)控數(shù)據(jù)實時上推方法,其省略各應用程序監(jiān)控數(shù)據(jù)上推代碼塊,監(jiān)控數(shù)據(jù)格式的配置更加靈活,實現(xiàn)了數(shù)據(jù)格式的集中化配置和數(shù)據(jù)的集中化上推,保證了數(shù)據(jù)上推的實時性。
本發(fā)明的技術方案是:這種監(jiān)控數(shù)據(jù)實時上推方法,該方法包括以下步驟:
(1)將被監(jiān)控的應用程序的數(shù)據(jù)保存到數(shù)據(jù)庫,以便保存歷史記錄和數(shù)據(jù)庫監(jiān)控服務器檢查數(shù)據(jù)的變化;
(2)數(shù)據(jù)庫監(jiān)控服務器檢查數(shù)據(jù)庫的變化,當接收到來自數(shù)據(jù)庫監(jiān)控客戶端服務的請求時,將返回數(shù)據(jù),數(shù)據(jù)包括修改或添加過的記錄;
(3)根據(jù)數(shù)據(jù)庫的配置抽取出需要上推到監(jiān)控平臺的數(shù)據(jù);
(4)日志配置對數(shù)據(jù)格式化,之后數(shù)據(jù)庫監(jiān)控客戶端再上推到監(jiān)控客戶端;
(5)監(jiān)控客戶端將接收到的數(shù)據(jù)輸入到監(jiān)控系統(tǒng)中。
本發(fā)明使用通用化監(jiān)控數(shù)據(jù)格式配置表,省略每個應用程序的發(fā)送格式化監(jiān)控數(shù)據(jù)代碼模塊,只需要在數(shù)據(jù)庫中配置即可;應用程序只需要把監(jiān)控數(shù)據(jù)保存到數(shù)據(jù)庫即可,由專門的應用程序負責檢查數(shù)據(jù)庫的變化,讀取到變化的數(shù)據(jù),根據(jù)監(jiān)控數(shù)據(jù)配置表進行格式化后發(fā)送到監(jiān)控系統(tǒng)的數(shù)據(jù)接收端,實現(xiàn)集中化的監(jiān)控數(shù)據(jù)格式化和監(jiān)控數(shù)據(jù)上推。
還提供了一種監(jiān)控數(shù)據(jù)實時上推系統(tǒng),該系統(tǒng)包括:
數(shù)據(jù)庫,其配置來檢查輸入的參數(shù)是否合法;
數(shù)據(jù)庫監(jiān)控服務器,其配置來將被監(jiān)控的應用程序的數(shù)據(jù)保存到數(shù)據(jù)庫,以便保存歷史記錄和數(shù)據(jù)庫監(jiān)控服務器檢查數(shù)據(jù)的變化;
數(shù)據(jù)庫監(jiān)控客戶端,其配置來檢查數(shù)據(jù)庫的變化,當接收到來自數(shù)據(jù)庫監(jiān)控客戶端服務的請求時,將返回數(shù)據(jù),數(shù)據(jù)包括修改或添加過的記錄,并將格式化的數(shù)據(jù)上推到監(jiān)控客戶端;
日志配置,其配置來存放數(shù)據(jù)格式化配置,對數(shù)據(jù)格式化;
監(jiān)控客戶端,其配置來將接收到的數(shù)據(jù)輸入到監(jiān)控系統(tǒng)中。
附圖說明
圖1所示為根據(jù)本發(fā)明的監(jiān)控數(shù)據(jù)實時上推方法的流程圖。
圖2所示為根據(jù)本發(fā)明的監(jiān)控數(shù)據(jù)實時上推系統(tǒng)的示意圖。
具體實施方式
如圖1所示,這種監(jiān)控數(shù)據(jù)實時上推方法,該方法包括以下步驟:
(1)將被監(jiān)控的應用程序的數(shù)據(jù)保存到數(shù)據(jù)庫,以便保存歷史記錄和數(shù)據(jù)庫監(jiān)控服務器檢查數(shù)據(jù)的變化;
(2)數(shù)據(jù)庫監(jiān)控服務器檢查數(shù)據(jù)庫的變化,當接收到來自數(shù)據(jù)庫監(jiān)控客戶端服務的請求時,將返回數(shù)據(jù),數(shù)據(jù)包括修改或添加過的記錄;
(3)根據(jù)數(shù)據(jù)庫的配置抽取出需要上推到監(jiān)控平臺的數(shù)據(jù);
(4)日志配置對數(shù)據(jù)格式化,之后數(shù)據(jù)庫監(jiān)控客戶端再上推到監(jiān)控客戶端;
(5)監(jiān)控客戶端將接收到的數(shù)據(jù)輸入到監(jiān)控系統(tǒng)中。
本發(fā)明使用通用化監(jiān)控數(shù)據(jù)格式配置表,省略每個應用程序的發(fā)送格式化監(jiān)控數(shù)據(jù)代碼模塊,只需要在數(shù)據(jù)庫中配置即可;應用程序只需要把監(jiān)控數(shù)據(jù)保存到數(shù)據(jù)庫即可,由專門的應用程序負責檢查數(shù)據(jù)庫的變化,讀取到變化的數(shù)據(jù),根據(jù)監(jiān)控數(shù)據(jù)配置表進行格式化后發(fā)送到監(jiān)控系統(tǒng)的數(shù)據(jù)接收端,實現(xiàn)集中化的監(jiān)控數(shù)據(jù)格式化和監(jiān)控數(shù)據(jù)上推。
另外,所述數(shù)據(jù)庫為mysql數(shù)據(jù)庫,所述數(shù)據(jù)庫監(jiān)控服務器為開源的canal-server工具,所述日志配置存放在mysql數(shù)據(jù)庫中一張表,所述數(shù)據(jù)庫監(jiān)控客戶端為自定義的一個基于canal-client的應用程序,所述監(jiān)控客戶端為open-falcon系統(tǒng)自帶的數(shù)據(jù)接收客戶端。
另外,所述步驟(3)中,數(shù)據(jù)格式化配置包括:數(shù)據(jù)庫、表名稱、字段。
另外,所述日志配置按照open-falcon的監(jiān)控數(shù)據(jù)上推格式要求設計。
另外,所述數(shù)據(jù)庫開啟主從同步功能,并且采用binlog_format=row。
另外,所述被監(jiān)控的應用程序的數(shù)據(jù)是數(shù)值。
另外,一條數(shù)據(jù)庫記錄如果包含多個數(shù)值字段,產(chǎn)生多條格式化的監(jiān)控數(shù)據(jù)。
本領域普通技術人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,包括上述實施例方法的各步驟,而所述的存儲介質可以是:ROM/RAM、磁碟、光盤、存儲卡等。因此,與本發(fā)明的方法相對應的,本發(fā)明還同時包括一種監(jiān)控數(shù)據(jù)實時上推系統(tǒng),該系統(tǒng)通常以與方法各步驟相對應的功能模塊的形式表示。使用該方法的系統(tǒng)包括:
數(shù)據(jù)庫,其配置來檢查輸入的參數(shù)是否合法;
數(shù)據(jù)庫監(jiān)控服務器,其配置來將被監(jiān)控的應用程序的數(shù)據(jù)保存到數(shù)據(jù)庫,以便保存歷史記錄和數(shù)據(jù)庫監(jiān)控服務器檢查數(shù)據(jù)的變化;
數(shù)據(jù)庫監(jiān)控客戶端,其配置來檢查數(shù)據(jù)庫的變化,當接收到來自數(shù)據(jù)庫監(jiān)控客戶端服務的請求時,將返回數(shù)據(jù),數(shù)據(jù)包括修改或添加過的記錄,并將格式化的數(shù)據(jù)上推到監(jiān)控客戶端;
日志配置,其配置來存放數(shù)據(jù)格式化配置,對數(shù)據(jù)格式化;
監(jiān)控客戶端,其配置來將接收到的數(shù)據(jù)輸入到監(jiān)控系統(tǒng)中。
如圖2所示,本發(fā)明包括以下部分:
1application:需要被監(jiān)控的應用程序。
2data base(數(shù)據(jù)庫):應用程序需要將數(shù)據(jù)保存到數(shù)據(jù)庫,便于保存歷史記錄和db monitor server檢查數(shù)據(jù)的變化。
3db monitor server(數(shù)據(jù)庫監(jiān)控服務器):負責檢查數(shù)據(jù)庫的變化,當接收到來自db monitor client服務的請求時,將返回修改或添加過的記錄。
4log config(日志配置):存放數(shù)據(jù)格式化配置。包括數(shù)據(jù)庫、表名稱、字段和其他信息,便于db monitor client查詢。
5db monitor client(數(shù)據(jù)庫監(jiān)控客戶端):定期請求db monitor server,獲取到數(shù)據(jù)后,如果log config中有關于該數(shù)據(jù)的配置項,會對數(shù)據(jù)格式化,之后再上推到monitor client。否則不做處理。
6monitor client(監(jiān)控客戶端):監(jiān)控系統(tǒng)的數(shù)據(jù)接收端,將接受到的數(shù)據(jù)輸入到監(jiān)控系統(tǒng)中去。
本發(fā)明實現(xiàn)方案的具體過程如下:
1、基礎框架(Framework)
mysql、open-falcon
2、各模塊結構(Modules)
●application:應用程序。
●data base:mysql數(shù)據(jù)庫。
●db monitor server:開源的canal-server工具。
●log config:存放在mysql數(shù)據(jù)庫中一張表。
●db monitor client:自己實現(xiàn)的一個基于canal-client的應用程序
●monitor client:open-falcon系統(tǒng)自帶的數(shù)據(jù)接收客戶端。
3、約定和規(guī)范
●監(jiān)控數(shù)據(jù)格式的配置表需要按照open-falcon的監(jiān)控數(shù)據(jù)上推格式要求設計
●data base需要開啟主從同步功能,并且采用binlog_format=row
●被監(jiān)控項只能是數(shù)值而不能是文本或者其他非數(shù)值格式
●一條數(shù)據(jù)庫記錄如果包含多個數(shù)值字段,可以產(chǎn)生多條格式化監(jiān)控數(shù)據(jù)
4、格式化參數(shù)(Params)
●輸入(in):
√record:應用程序寫入數(shù)據(jù)庫的記錄
●輸出(out):
√json格式化監(jiān)控數(shù)據(jù):db monitor client的輸出的監(jiān)控數(shù)據(jù)格式
5、編碼實現(xiàn)(Programs)
●Coding:按照約定的格式和協(xié)議實現(xiàn)db monitor client
6、構建部署(Build)
●Ubuntu12.04.4
●Mysql5.5
●Canal
●Open-falcon0.1.0
本發(fā)明的有益效果如下:
1、省略各應用程序監(jiān)控數(shù)據(jù)上推代碼塊;
2、監(jiān)控數(shù)據(jù)格式的配置更加靈活;
3、實現(xiàn)了數(shù)據(jù)格式的集中化配置和數(shù)據(jù)的集中化上推;
4、保證了數(shù)據(jù)上推的實時性。
以上所述,僅是本發(fā)明的較佳實施例,并非對本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬本發(fā)明技術方案的保護范圍。