一種日志采集方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種日志采集方法及裝置。所述方法包括:根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合;啟動日志存儲線程,將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,其中所述數(shù)據(jù)庫支持所述預設的數(shù)據(jù)格式。本發(fā)明實施例提出的技術(shù)方案能夠很方便的查看日志信息,并且能夠?qū)Σ杉娜罩拘畔⑦M行統(tǒng)計分析或以過濾條件查詢,進而能夠快速定位或分析在獨立服務器或服務器集群環(huán)境下程序出錯的問題,同時在一定程度上提高服務器應用程序的執(zhí)行效率,避免對服務器系統(tǒng)程序的性能造成影響。
【專利說明】一種日志采集方法及裝置
【技術(shù)領域】
[0001 ] 本發(fā)明實施例涉及通信【技術(shù)領域】,尤其涉及一種日志采集方法及裝置。
【背景技術(shù)】
[0002]目前,在客戶端/服務器或者瀏覽器/服務器架構(gòu)下的服務交互系統(tǒng)中,服務器通常安裝有用于實現(xiàn)各種服務的應用程序,這些應用程序的安全性、穩(wěn)定性對用戶而言是至關重要的。為此,服務器會定期采集和分析各應用程序?qū)娜罩拘畔肀O(jiān)控各個應用程序的運行情況。
[0003]現(xiàn)有的日志采集技術(shù)大多都是將日志信息以文件的形式存儲在應用程序所在服務器的物理磁盤上,并以時間、大小等限制保持一定容量的日志信息。但是,這種方式存在以下不足:(1)查看日志信息不方便;(2)統(tǒng)計分析或以過濾條件查詢?nèi)罩拘畔⒑芾щy;
[3]—定程度上降低了服務器應用程序的執(zhí)行效率,尤其延長了服務請求的響應時間,對服務器應用程序的性能有一定影響。
[0004]綜上所述,當應用程序出現(xiàn)問題時,如果以現(xiàn)有的方式判斷、定位、或者查找問題的原因時,會花費很多的時間,效率較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種日志采集方法及裝置,以使得能夠很方便的查看日志信息,并且能夠?qū)Σ杉娜罩拘畔⑦M行統(tǒng)計分析或以過濾條件查詢,在一定程度上提高服務器應用程序的執(zhí)行效率,避免對服務器系統(tǒng)程序的性能造成影響。
[0006]第一方面,本發(fā)明實施例提供了一種日志米集方法,該方法包括:
[0007]根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合;
[0008]啟動日志存儲線程,將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,其中所述數(shù)據(jù)庫支持所述預設的數(shù)據(jù)格式。
[0009]第二方面,本發(fā)明實施例還提供了一種日志采集裝置,該裝置包括:
[0010]日志信息組裝單元,用于根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合;
[0011]日志信息存儲單元,用于啟動日志存儲線程,將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,其中所述數(shù)據(jù)庫支持所述預設的數(shù)據(jù)格式。
[0012]本發(fā)明實施例提出的技術(shù)方案的有益技術(shù)效果為:
[0013]一方面,通過將對日志信息進行組裝后生成的信息對象集合存儲到獨立于服務器而存在的數(shù)據(jù)庫中,而并非存儲在服務器的物理磁盤上,使得不必再登錄服務器進行查看日志信息,且對于部署在服務器集群上的應用程序而言,可直接從數(shù)據(jù)庫中查找相應日志信息;
[0014]另一方面,信息對象集合是以數(shù)據(jù)庫所支持的格式進行存儲,由于數(shù)據(jù)庫中通常是以鍵值對的形式進行數(shù)據(jù)存儲的,根據(jù)其中的鍵能夠很容易完成對數(shù)據(jù)庫中所存儲的日志信息數(shù)據(jù)的增、刪、改、查等操作,進而實現(xiàn)對日志信息的統(tǒng)計分析或者以過濾條件查詢等后續(xù)操作;
[0015]再一方面,通過啟動日志存儲線程對日志信息進行存儲,不中斷當前服務器上正在運行的應用程序,提高了應用程序的執(zhí)行效率,尤其縮短了服務請求的響應時間,避免了對服務器應用程序的性能所造成的影響。
【專利附圖】
【附圖說明】
[0016]圖1是本發(fā)明實施例一提供的一種日志采集方法的流程示意圖;
[0017]圖2是本發(fā)明實施例二提供的一種日志采集方法的流程示意圖;
[0018]圖3是本發(fā)明實施例三提供的一種日志采集裝置的結(jié)構(gòu)示意圖;
[0019]圖4是本發(fā)明實施例四提供的一種日志信息采集系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0020]下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部結(jié)構(gòu)。
[0021]實施例一
[0022]圖1為本發(fā)明實施例一提供的一種日志采集方法的流程示意圖,本實施例可適用于對服務器中各應用程序?qū)娜罩拘畔⑦M行采集的情況,該方法可以由日志采集裝置來執(zhí)行。其中,服務器可以是在客戶端/服務器或者瀏覽器/服務器架構(gòu)中的服務器;日志采集裝置可以設置在服務器內(nèi)部,也可獨立于服務器。具體的,所述方法包括如下步驟:
[0023]步驟110、根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合;
[0024]步驟120、啟動日志存儲線程,將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于服務器而存在的數(shù)據(jù)庫中。
[0025]在本實施例中,服務器上的應用程序會根據(jù)當前自身運行的情況生成與其對應的日志信息。通常情況下日志信息是被暫時存儲在服務器的堆棧中的。日志采集裝置可首先從服務器的堆棧中獲取各應用程序生成的日志信息,并根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合。其中,配置文件是用于描述日志信息的組裝格式,例如配置文件描述了日志信息以與其對應的應用程序名稱、日志大小、日志采集時間、日志內(nèi)容等格式進行組裝。
[0026]在將服務器中生成的日志信息組裝成信息對象集合后,日志采集裝置啟動不同于當前服務器系統(tǒng)線程的日志存儲線程,建立與獨立于服務器而存在的數(shù)據(jù)庫的連接,對經(jīng)組裝后的日志信息以預設的數(shù)據(jù)格式存儲到該數(shù)據(jù)庫中。其中所述預設的數(shù)據(jù)格式應為該數(shù)據(jù)庫所支持的數(shù)據(jù)格式。
[0027]本發(fā)明實施例提出的技術(shù)方案,具有如下優(yōu)點:
[0028]( I)將對日志信息進行組裝后生成的信息對象集合存儲到獨立于服務器而存在的數(shù)據(jù)庫中,而非服務器的物理磁盤上,使得后續(xù)在用戶查看日志信息時可不必再登錄服務器,且對于部署在服務器集群上的應用程序而言,可直接從數(shù)據(jù)庫中查找相應日志信息,克服了當一個請求發(fā)生異常時,由于集群做了負載均衡,而無法得知與此異常行為相對應的日志被存儲在集群中的哪一個服務器上的問題;
[0029](2)以數(shù)據(jù)庫所支持的格式存儲信息對象集合進行存儲,由于數(shù)據(jù)庫中通常是以鍵值對的形式進行數(shù)據(jù)存儲的,根據(jù)其中的鍵能夠很容易完成對數(shù)據(jù)庫中所存儲的日志信息數(shù)據(jù)的增、刪、改、查等操作,進而實現(xiàn)對日志信息的統(tǒng)計分析或者以過濾條件查詢等后續(xù)操作,能夠快速定位或分析在獨立服務器或服務器集群環(huán)境下程序出錯的問題;
[0030](3)通過啟動日志存儲線程對日志信息進行存儲,不中斷當前服務器上正在運行的應用程序,能夠提高應用程序的執(zhí)行效率,避免對服務器應用程序的性能所造成的影響。
[0031]實施例二
[0032]圖2是本發(fā)明實施例二提供的一種日志采集方法的流程示意圖。本實施例在實施例一的基礎上,增加了生成配置文件的步驟,并根據(jù)該步驟對根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合、將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中這兩個步驟作進一步優(yōu)化。參見圖2,所述方法具體包括如下步驟:
[0033]步驟210、對日志參數(shù)存儲文件進行采集參數(shù)設置,生成配置文件。
[0034]在本實施例中,采集參數(shù)包括配置格式、日志類型和數(shù)據(jù)庫所在設備的IP地址與端口。具體的,配置格式可以包括與其對應的應用程序名稱、日志大小、日志采集時間、日志內(nèi)容等組成的一種格式;日志類型可包括調(diào)試信息類、警告信息類、錯誤信息類、應用程序內(nèi)容信息類等。
[0035]步驟220、查詢服務器中生成的日志信息,從中獲取與配置文件中的日志類型相對應的日志信息。
[0036]日志采集裝置在生成配置文件后,可通過讀取配置文件中的日志類型,從服務器的堆棧中提取只與所述日志類型相對應的日志信息,例如從堆棧存儲的所有日志信息中提取錯誤信息這一類型的日志信息。
[0037]步驟230、根據(jù)配置文件中記錄的配置格式,將獲取到的日志信息組裝成信息對象
隹A
口 O
[0038]步驟240、通過獨立于服務器而存在的數(shù)據(jù)庫的驅(qū)動程序讀取配置文件中記錄的數(shù)據(jù)庫所在設備的IP地址與端口。
[0039]步驟250、根據(jù)IP地址與端口驅(qū)動與數(shù)據(jù)庫的連接,將所述信息對象集合以預設的數(shù)據(jù)格式發(fā)送至數(shù)據(jù)庫中。
[0040]在本實施例中,在將獲取到的日志信息組裝成信息對象集合之后,進一步將該信息對象集合存儲到獨立于服務器而存在的數(shù)據(jù)庫中去。為了實現(xiàn)此存儲過程,日志采集裝置可首先通過預先導入的數(shù)據(jù)庫的驅(qū)動程序來完成與數(shù)據(jù)庫的連接。其中,所述連接過程可以是:數(shù)據(jù)庫的驅(qū)動程序首先進行連接初始化,讀取配置文件中記錄的數(shù)據(jù)庫所在設備的IP地址與端口,然后根據(jù)該IP地址與端口向數(shù)據(jù)庫發(fā)送連接請求,在接收到數(shù)據(jù)庫的應答消息后,完成日志采集裝置與數(shù)據(jù)庫的連接。
[0041]在以上技術(shù)方案的基礎上,在將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于服務器而存在的數(shù)據(jù)庫中之后,還包括:在接收到日志信息查詢請求時,將所述數(shù)據(jù)庫中存儲的、符合該日志信息查詢請求的信息對象數(shù)據(jù)進行解析,生成頁面格式下的信息對象數(shù)據(jù)進行顯示。這樣,能夠?qū)崿F(xiàn)快捷的用戶查詢,為對應用程序異常情況的判斷、定位查找提供了方便,提高了處理問題的效率。
[0042]在上述各個實施例的基礎上,數(shù)據(jù)庫優(yōu)選為MongoDB,預設的數(shù)據(jù)格式為BSON (二進制序列化文檔格式,Binary Serialized Document Format)。MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,基于關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫之間的產(chǎn)品,支持數(shù)據(jù)結(jié)構(gòu)非常松散、存儲比較復雜的數(shù)據(jù)類型,支持動態(tài)查詢、完全索引、復制和故障恢復,可通過網(wǎng)絡訪問。這樣,可以能夠較好的保證信息對象集合存儲的可靠性和穩(wěn)定性。
[0043]實施例三
[0044]圖3是本發(fā)明實施例三提供的一種日志采集裝置的結(jié)構(gòu)示意圖。參見圖3,所述裝置具體包括:
[0045]日志信息組裝單元310,用于根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合;
[0046]日志信息存儲單元320,用于啟動日志存儲線程,將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,其中所述數(shù)據(jù)庫支持所述預設的數(shù)據(jù)格式。
[0047]進一步的,所述裝置還包括:采集參數(shù)配置單元300,用于在所述日志信息組裝單元310根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合之前,對日志參數(shù)存儲文件進行采集參數(shù)設置,生成所述配置文件;
[0048]其中,所述采集參數(shù)包括配置格式、日志類型和所述數(shù)據(jù)庫所在設備的IP地址與端口。
[0049]所述日志信息組裝單元310具體用于:查詢所述服務器中生成的日志信息,從中獲取與所述配置文件中的日志類型相對應的日志信息;根據(jù)所述配置文件中記錄的配置格式,將獲取到的日志信息組裝成信息對象集合;
[0050]所述日志信息存儲單元320將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,具體用于:通過所述數(shù)據(jù)庫的驅(qū)動程序讀取所述配置文件中記錄的所述數(shù)據(jù)庫所在設備的IP地址與端口,根據(jù)所述IP地址與端口驅(qū)動與所述數(shù)據(jù)庫的連接;將所述信息對象集合以預設的數(shù)據(jù)格式發(fā)送至獨立于所述服務器而存在的所述數(shù)據(jù)庫中。
[0051]進一步的,所述裝置還包括:日志信息顯示單元330,用于在所述日志信息存儲單元320將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中之后,在接收到日志信息查詢請求時,將所述數(shù)據(jù)庫中存儲的、符合所述日志信息查詢請求的信息對象數(shù)據(jù)進行解析,生成頁面格式下的信息對象數(shù)據(jù)進行顯示。
[0052]進一步的,所述數(shù)據(jù)庫為MongoDB,所述預設的數(shù)據(jù)格式為BS0N。
[0053]上述產(chǎn)品可執(zhí)行本發(fā)明任意實施例所提供的方法,具備執(zhí)行方法相應的功能模塊和有益效果。
[0054]實施例四
[0055]圖4是本發(fā)明實施例四提供給的一種日志信息采集系統(tǒng)的結(jié)構(gòu)示意圖。本實施例可以以上述實施例為基礎,提供一優(yōu)選實施例。參見圖4,該日志信息的采集過程包括:[0056]日志采集裝置對日志參數(shù)存儲文件log4j.properties進行采集參數(shù)設置,生成配置文件;
[0057]日志采集裝置導入開源的jar包:log4j-l.2.17.jar、log4mongo_java-0.7.4.jar 和 mongo-java-driver_2.10.1.jar, 其 中l(wèi)og4j-l.2.17.jar包是獲取日志信息的前置條件,log4mongo-java_0.7.4.jar和mongo-java-driver-2.10.1.jar 為 MongoDB 數(shù)據(jù)庫的驅(qū)動程序;
[0058]日志采集裝置根據(jù)配置文件將服務器集群410和獨立服務器420中各應用程序和/或服務生成的日志信息組裝成信息對象集合;
[0059]日志采集裝置通過獨立于服務器集群410和獨立服務器420而存在的MongoDB數(shù)據(jù)庫的驅(qū)動程序,讀取配置文件中記錄的MongoDB數(shù)據(jù)庫所在設備的IP地址與端口 ;
[0060]根據(jù)IP地址與端口驅(qū)動與MongoDB數(shù)據(jù)庫的連接,將信息對象集合以預設的數(shù)據(jù)格式發(fā)送至MongoDB數(shù)據(jù)庫中;
[0061]在接收到日志信息查詢請求時,日志采集裝置中的顯示應用程序?qū)ongoDB數(shù)據(jù)庫中存儲的、符合該日志信息查詢請求的信息對象數(shù)據(jù)進行解析,生成頁面格式下的信息對象數(shù)據(jù),并將所生成的頁面顯示在終端430的顯示器屏幕上。
[0062]注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術(shù)人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。
【權(quán)利要求】
1.一種日志米集方法,其特征在于,包括: 根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合; 啟動日志存儲線程,將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,其中所述數(shù)據(jù)庫支持所述預設的數(shù)據(jù)格式。
2.根據(jù)權(quán)利要求1所述的日志采集方法,其特征在于,在所述根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合之前,還包括:對日志參數(shù)存儲文件進行采集參數(shù)設置,生成所述配置文件; 其中,所述采集參數(shù)包括配置格式、日志類型和所述數(shù)據(jù)庫所在設備的IP地址與端□。
3.根據(jù)權(quán)利要求2所述的日志采集方法,其特征在于,所述根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合,包括:查詢所述服務器中生成的日志信息,從中獲取與所述配置文件中的日志類型相對應的日志信息;根據(jù)所述配置文件中記錄的配置格式,將獲取到的日志信息組裝成信息對象集合; 所述將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,包括:通過所述數(shù)據(jù)庫的驅(qū)動程序讀取所述配置文件中記錄的所述數(shù)據(jù)庫所在設備的IP地址與端口,根據(jù)所述IP地址與端口驅(qū)動與所述數(shù)據(jù)庫的連接;將所述信息對象集合以預設的數(shù)據(jù)格式發(fā)送至獨立于所述服務器而存在的所述數(shù)據(jù)庫中。
4.根據(jù)權(quán)利要求1 所述的日志采集方法,其特征在于,在所述將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中之后,還包括:在接收到日志信息查詢請求時,將所述數(shù)據(jù)庫中存儲的、符合所述日志信息查詢請求的信息對象數(shù)據(jù)進行解析,生成頁面格式下的信息對象數(shù)據(jù)進行顯示。
5.根據(jù)權(quán)利要求1-4中任一項所述的日志采集方法,其特征在于,所述數(shù)據(jù)庫為MongoDB,所述預設的數(shù)據(jù)格式為BS0N。
6.一種日志采集裝置,其特征在于,包括: 日志信息組裝單元,用于根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合; 日志信息存儲單元,用于啟動日志存儲線程,將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中,其中所述數(shù)據(jù)庫支持所述預設的數(shù)據(jù)格式。
7.根據(jù)權(quán)利要求1所述的日志采集裝置,其特征在于,還包括:采集參數(shù)配置單元,用于在所述日志信息組裝單元根據(jù)預設的配置文件將服務器中生成的日志信息組裝成信息對象集合之前,對日志參數(shù)存儲文件進行采集參數(shù)設置,生成所述配置文件; 其中,所述采集參數(shù)包括配置格式、日志類型和所述數(shù)據(jù)庫所在設備的IP地址與端□。
8.根據(jù)權(quán)利要求7所述的日志采集裝置,其特征在于,所述日志信息組裝單元具體用于:查詢所述服務器中生成的日志信息,從中獲取與所述配置文件中的日志類型相對應的日志信息;根據(jù)所述配置文件中記錄的配置格式,將獲取到的日志信息組裝成信息對象集合; 所述日志信息存儲單元具體用于:啟動日志存儲線程,通過所述數(shù)據(jù)庫的驅(qū)動程序讀取所述配置文件中記錄的所述數(shù)據(jù)庫所在設備的IP地址與端口,根據(jù)所述IP地址與端口驅(qū)動與所述數(shù)據(jù)庫的連接;將所述信息對象集合以預設的數(shù)據(jù)格式發(fā)送至獨立于所述服務器而存在的所述數(shù)據(jù)庫中。
9.根據(jù)權(quán)利要求1所述的日志采集裝置,其特征在于,還包括:日志信息顯示單元,用于在所述日志信息存儲單元將所述信息對象集合以預設的數(shù)據(jù)格式存儲到獨立于所述服務器而存在的數(shù)據(jù)庫中之后,在接收到日志信息查詢請求時,將所述數(shù)據(jù)庫中存儲的、符合所述日志信息查詢請求的信息對象數(shù)據(jù)進行解析,生成頁面格式下的信息對象數(shù)據(jù)進行顯示。
10.根據(jù)權(quán)利要求6-9中任一項所述的日志采集裝置,其特征在于,所述數(shù)據(jù)庫為MongoDB,所述預設的數(shù)據(jù)格式為BS0N。
【文檔編號】G06F17/30GK103944973SQ201410132023
【公開日】2014年7月23日 申請日期:2014年4月2日 優(yōu)先權(quán)日:2014年4月2日
【發(fā)明者】馬龍清, 蔡抒揚, 王鵬, 胡道生, 夏曙光 申請人:北京中交興路車聯(lián)網(wǎng)科技有限公司