一種日志數(shù)據(jù)傳輸?shù)姆椒ê拖到y(tǒng)的制作方法
【專利說明】一種日志數(shù)據(jù)傳輸?shù)姆椒ê拖到y(tǒng)
[0001]本發(fā)明專利申請是申請日為2012年9月25日、申請?zhí)枮?01210362605.6、名稱為“一種日志數(shù)據(jù)傳輸?shù)姆椒ê拖到y(tǒng)”的中國發(fā)明專利申請的分案申請。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及日志處理的技術(shù)領(lǐng)域,具體涉及一種日志數(shù)據(jù)傳輸?shù)姆椒ê拖到y(tǒng)。
【背景技術(shù)】
[0003]日志(log)用來儲存和記錄系統(tǒng)運行情況和用戶使用情況的詳細信息,這些信息是查看系統(tǒng)運行狀態(tài)和排查問題的主要依據(jù)。例如,某個軟件中應(yīng)用程序出現(xiàn)崩潰情況,那么可以從程序事件日志中找到相應(yīng)的記錄,從而幫助相關(guān)技術(shù)人員分析并解決問題。
[0004]以線上系統(tǒng)日志信息為例,日志信息可以用來對線上業(yè)務(wù)運行過程的記錄和運行程序的監(jiān)控,通過分析記錄的日志信息可以為出現(xiàn)和可能出現(xiàn)的錯誤進行提示、警告,還可以統(tǒng)計業(yè)務(wù)信息,為業(yè)務(wù)邏輯改進和應(yīng)用程序升級提供可靠的依據(jù)。
[0005]參考圖1所示的一種現(xiàn)有技術(shù)中基于C語言程序生成的日志記錄系統(tǒng)的結(jié)構(gòu)示意圖,現(xiàn)有的日志記錄系統(tǒng)具體可以包括應(yīng)用服務(wù)器11和日志服務(wù)器12,其中,所述應(yīng)用服務(wù)器11中包括多個應(yīng)用程序111,以及LIB庫(一種基于Linux平臺的靜態(tài)庫或者動態(tài)庫)112形式掛接在各個應(yīng)用程序模塊上的日志采集模塊,以及,與所述日志采集模塊相連的日志客戶端113 ;所述日志服務(wù)器12與DB13相連。
[0006]在這種現(xiàn)有的日志記錄系統(tǒng)中,通常會針對每個應(yīng)用程序模塊111配置一個日志采集模塊112,在應(yīng)用程序模塊111中調(diào)用日志采集模塊112的接口,通過參數(shù)傳遞方式將日志級別、日志記錄時間、日志內(nèi)容、日志流水號、應(yīng)用程序名等日志信息,傳入日志采集模塊112,日志采集模塊112將采集到的日志信息寫入LIB庫112中的消息隊列。日志客戶端113讀取消息隊列中的日志信息通過網(wǎng)絡(luò)通信發(fā)給遠端的日志服務(wù)器12。日志服務(wù)器將收到的信息插入到數(shù)據(jù)庫(DB) 13中。
[0007]在上述日志傳輸?shù)倪^程中,應(yīng)用服務(wù)器上各應(yīng)用程序模塊111產(chǎn)生的日志信息通過LIB庫發(fā)送給日志客戶端113,所述日志客戶端保存所收到的日志,再根據(jù)配置的日志服務(wù)器IP地址和相關(guān)端口號,將所收到的日志發(fā)送給日志服務(wù)器。日志服務(wù)器接收所述日志,將所接收到的日志統(tǒng)一保存到DB中。
[0008]這種方案一旦應(yīng)用服務(wù)器11發(fā)生宕機,未及時發(fā)送出去的日志就會丟失,在日志服務(wù)器12處理完日志之前,是無法查看到當(dāng)前發(fā)生的日志;另外,這種方案將在應(yīng)用服務(wù)器上和日志服務(wù)器上分別建立一套數(shù)據(jù)庫,存儲兩套日志,造成了存儲的冗余。
[0009]因此,本領(lǐng)域技術(shù)人員需要迫切解決的問題是:提供一種日志數(shù)據(jù)傳輸?shù)姆椒跋到y(tǒng),能降低數(shù)據(jù)丟失的風(fēng)險及減少存儲的冗余。
【發(fā)明內(nèi)容】
[0010]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種日志數(shù)據(jù)傳輸?shù)姆椒ê拖鄳?yīng)的一種日志數(shù)據(jù)傳輸?shù)南到y(tǒng)。
[0011 ] 依據(jù)本發(fā)明的一個方面,提供了一種日志數(shù)據(jù)傳輸?shù)姆椒?,所述日志?shù)據(jù)傳輸涉及將應(yīng)用服務(wù)器產(chǎn)生的日志數(shù)據(jù)傳送至日志服務(wù)器的過程,所述日志服務(wù)器中包括日志數(shù)據(jù)庫,或者,所述日志服務(wù)器與日志數(shù)據(jù)庫相連,所述方法包括:
[0012]日志服務(wù)器定時從所述應(yīng)用服務(wù)器抓取日志數(shù)據(jù),并將所述日志數(shù)據(jù)寫入日志數(shù)據(jù)庫中;
[0013]從所述應(yīng)用服務(wù)器中刪除所述已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)。
[0014]可選地,所述日志服務(wù)器定時從所述應(yīng)用服務(wù)器抓取日志數(shù)據(jù),并將所述日志數(shù)據(jù)寫入日志數(shù)據(jù)庫中的步驟包括:
[0015]子步驟S1、日志服務(wù)器定時從所述應(yīng)用服務(wù)器抓取日志數(shù)據(jù);
[0016]子步驟S2、根據(jù)所述抓取的日志數(shù)據(jù)生成新日志文件;
[0017]子步驟S3、判斷所述日志服務(wù)器中是否存在舊日志文件;若是,則執(zhí)行子步驟S5,若否,則執(zhí)行子步驟S4;
[0018]子步驟S4、創(chuàng)建一個空文件作為舊日志文件,轉(zhuǎn)子步驟S5 ;
[0019]子步驟S5、將所述新日志文件與舊日志文件進行比較,生成增量日志文件;
[0020]子步驟S6、將所述增量日志文件寫入日志數(shù)據(jù)庫中。
[0021]可選地,所述子步驟S5進一步包括:
[0022]子步驟S11、將所述新日志文件與舊日志文件進行比較,提取新增內(nèi)容生成新比較文件;
[0023]子步驟S12、采用所述新比較文件替換在先的舊比較文件;
[0024]子步驟S13、去除所述新比較文件中的冗余數(shù)據(jù)后,生成新的增量日志文件;
[0025]子步驟S14、采用所述新增量日志文件替換在先的舊增量日志文件。
[0026]可選地,所述日志服務(wù)器定時從所述應(yīng)用服務(wù)器抓取日志數(shù)據(jù),并將所述日志數(shù)據(jù)寫入日志數(shù)據(jù)庫中的步驟還包括:
[0027]子步驟S7、采用所述新日志文件替換舊日志文件。
[0028]可選地,所述子步驟SI為,日志服務(wù)器定時從所述應(yīng)用服務(wù)器抓取當(dāng)天的全量日志數(shù)據(jù)。
[0029]可選地,所述日志服務(wù)器定時從所述應(yīng)用服務(wù)器抓取日志數(shù)據(jù),并將所述日志數(shù)據(jù)寫入日志數(shù)據(jù)庫中的步驟還包括:
[0030]子步驟S8、若在將所述增量日志文件寫入日志數(shù)據(jù)庫中發(fā)生錯誤,則將寫入的日志數(shù)據(jù)進行回滾。
[0031]根據(jù)本發(fā)明的另一方面,提供了一種日志數(shù)據(jù)傳輸?shù)南到y(tǒng),包括:
[0032]應(yīng)用服務(wù)器和日志服務(wù)器,所述應(yīng)用服務(wù)器與日志服務(wù)器相連,所述日志服務(wù)器與日志數(shù)據(jù)庫相連;
[0033]所述日志服務(wù)器還包括:
[0034]日志采集模塊,適于定時從所述應(yīng)用服務(wù)器抓取日志數(shù)據(jù),并將所述日志數(shù)據(jù)寫入日志數(shù)據(jù)庫中;
[0035]日志刪除模塊,適于刪除應(yīng)用服務(wù)器中已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)。
[0036]可選地,所述日志采集模塊包括:
[0037]日志數(shù)據(jù)抓取子模塊,適于定時從所述應(yīng)用服務(wù)器抓取日志數(shù)據(jù);
[0038]日志文件生成子模塊,適于根據(jù)所述抓取的日志數(shù)據(jù)生成新日志文件;
[0039]判斷子模塊,適于判斷所述日志服務(wù)器中是否存在舊日志文件;若否,則調(diào)用創(chuàng)建子模塊,若是,則調(diào)用比較子模塊;
[0040]創(chuàng)建子模塊,適于創(chuàng)建一個空文件作為舊日志文件;
[0041]比較子模塊,適于將所述新日志文件與舊日志文件進行比較,生成增量日志文件;
[0042]記錄子模塊,適于將所述增量日志文件寫入日志數(shù)據(jù)庫中。
[0043]可選地,所述比較子模塊進一步包括:
[0044]提取單元,適于提取所述新日志文件與舊日志文件比較生成的新增內(nèi)容新比較文件;
[0045]第一替換單元,適于將所述新比較文件替換在先的舊比較文件;
[0046]冗余數(shù)據(jù)刪除單元,適于去除所述新比較文件中的冗余數(shù)據(jù)后,生成新的增量日志文件;
[0047]第二替換單元,適于將所述新增量日志文件替換在先的舊增量日志文件。
[0048]可選地,所述日志采集模塊還包括:
[0049]第三替換子模塊,適于將新日志文件替換舊日志文件。
[0050]可選地,所述日志采集模塊還包括:
[0051 ] 回滾子模塊,適于所述增量日志文件寫入日志數(shù)據(jù)庫中發(fā)生錯誤時,將寫入的日志數(shù)據(jù)進行回滾。
[0052]根據(jù)本發(fā)明的日志數(shù)據(jù)傳輸方法及系統(tǒng),可以由日志服務(wù)器定時從應(yīng)用服務(wù)器主動抓取當(dāng)天全量的日志數(shù)據(jù),抓取日志數(shù)據(jù)進行集中后則將應(yīng)用服務(wù)器上已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)進行刪除;由此解決了現(xiàn)有技術(shù)在服務(wù)器宕機時未及時發(fā)送出去的日志數(shù)據(jù)會丟失的問題,取得了降低數(shù)據(jù)丟失的風(fēng)險和存儲的冗余的有益效果。
[0053]由于日志數(shù)據(jù)庫可以位于日志服務(wù)器中,也可以單獨設(shè)置,與日志服務(wù)器相連,日志數(shù)據(jù)庫可以按照需求控制內(nèi)存空間的容量,定期清理不再需要的日志數(shù)據(jù),日志服務(wù)器抓取日志數(shù)據(jù)進行集中后則將應(yīng)用服務(wù)器上已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)刪除,降低了存儲的冗余。
[0054]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0055]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0056]圖1示出了根據(jù)本發(fā)明一個實施例的現(xiàn)有技術(shù)的日志傳輸系統(tǒng)的結(jié)構(gòu)示意圖;
[0057]圖2示出了根據(jù)本發(fā)明一個實施例的一種日志數(shù)據(jù)傳輸方法實施例的流程圖;
[0058]圖3示出了根據(jù)本發(fā)明一個實施例的一種日志數(shù)據(jù)傳輸系統(tǒng)實施例的結(jié)構(gòu)框圖。