一種系統(tǒng)日志數(shù)據(jù)傳輸方法及裝置的制造方法
【技術領域】
[0001 ] 本發(fā)明涉及系統(tǒng)日志數(shù)據(jù)技術領域,特別是涉及一種系統(tǒng)日志數(shù)據(jù)傳輸方法及裝置。
【背景技術】
[0002]日志(log)能夠用來儲存和記錄系統(tǒng)運行情況以及用戶使用情況的詳細信息,這些信息是查看系統(tǒng)運行狀態(tài)和排查問題的主要依據(jù)。例如,某個軟件中應用程序出現(xiàn)崩潰情況,那么可以從程序事件日志中找到相應的記錄,從而幫助相關技術人員分析并解決問題。
[0003]以線上系統(tǒng)日志信息為例,日志信息可以用來對線上業(yè)務運行過程進行記錄和運行程序進行監(jiān)控,通過分析記錄的日志信息可以為出現(xiàn)和可能出現(xiàn)的錯誤進行提示、警告,還可以統(tǒng)計業(yè)務信息,為業(yè)務邏輯的改進和應用程序的升級提供可靠的依據(jù)。
[0004]現(xiàn)有日志傳輸方法,應用服務器上各應用程序模塊產生的日志信息通過LIB庫發(fā)送給日志客戶端,日志客戶端保存所收到的日志,再根據(jù)配置的日志服務器IP地址和相關端口號,將所收到的日志發(fā)送給日志服務器。日志服務器接收日志,將所接收到的日志統(tǒng)一保存到DB中。
[0005]這種方案一旦應用服務器發(fā)生宕機,未及時發(fā)送出去的日志就會丟失,在日志服務器處理完日志之前,是無法查看到當前發(fā)生的日志。另外,這種方案將在應用服務器上和日志服務器上分別建立一套數(shù)據(jù)庫,存儲了兩套日志數(shù)據(jù),造成了存儲資源的浪費。
【發(fā)明內容】
[0006]本發(fā)明的目的是提供一種系統(tǒng)日志數(shù)據(jù)傳輸方法及裝置,目的在于降低日志數(shù)據(jù)丟失的風險以及減少存儲的冗余。
[0007]為解決上述技術問題,本發(fā)明提供一種系統(tǒng)日志數(shù)據(jù)傳輸方法,包括:
[0008]從應用服務器抓取日志數(shù)據(jù);
[0009]根據(jù)抓取的日志數(shù)據(jù)生成新日志文件;
[0010]將所述新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取新增的內容作為增量日志文件;
[0011 ] 將所述增量日志文件寫入日志數(shù)據(jù)庫中,并從所述應用服務器中刪除已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)。
[0012]可選地,所述從應用服務器抓取日志數(shù)據(jù)包括:
[0013]根據(jù)預定時間間隔定時從應用服務器抓取當天的全量日志數(shù)據(jù)。
[0014]可選地,所述將所述新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取新增的內容作為增量日志文件包括:
[0015]判斷所述日志數(shù)據(jù)庫中是否存在與所述新日志文件相對應的舊日志文件;
[0016]當存在所述舊日志文件時,將所述新日志文件與舊日志文件進行比較,提取新增的內容作為增量日志文件;當不存在所述舊日志文件時,創(chuàng)建一個空文件作為舊日志文件,提取所述新日志文件的內容作為增量日志文件。
[0017]可選地,在將所述新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取新增的內容作為增量日志文件之后還包括:
[0018]判斷所述日志數(shù)據(jù)庫中是否存在與當前增量日志文件相對應的舊增量日志文件;
[0019]當存在所述舊增量日志文件時,采用當前增量日志文件替換所述舊增量日志文件。
[0020]可選地,所述將所述增量日志文件寫入日志數(shù)據(jù)庫中包括:
[0021 ] 當增量日志文件寫入所述日志數(shù)據(jù)庫時發(fā)生錯誤,將寫入的日志數(shù)據(jù)進行回滾。
[0022]本發(fā)明還提供了一種系統(tǒng)日志數(shù)據(jù)傳輸裝置,包括:
[0023]抓取模塊,用于從應用服務器抓取日志數(shù)據(jù);
[0024]生成模塊,用于根據(jù)抓取的日志數(shù)據(jù)生成新日志文件;
[0025]提取模塊,用于將所述新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取新增的內容作為增量日志文件;
[0026]寫入模塊,用于將所述增量日志文件寫入日志數(shù)據(jù)庫中,并從所述應用服務器中刪除已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)。
[0027]可選地,所述抓取模塊用于從應用服務器抓取日志數(shù)據(jù)包括:
[0028]所述抓取模塊具體用于根據(jù)預定時間間隔定時從應用服務器抓取當天的全量日志數(shù)據(jù)。
[0029]可選地,所述提取模塊包括:
[0030]判斷單元,用于判斷所述日志數(shù)據(jù)庫中是否存在與所述新日志文件相對應的舊日志文件;
[0031]提取單元,用于當存在所述舊日志文件時,將所述新日志文件與舊日志文件進行比較,提取新增的內容作為增量日志文件;當不存在所述舊日志文件時,創(chuàng)建一個空文件作為舊日志文件,提取所述新日志文件的內容作為增量日志文件。
[0032]可選地,還包括:
[0033]替換模塊,用于在將所述新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取新增的內容作為增量日志文件之后,判斷所述日志數(shù)據(jù)庫中是否存在與當前增量日志文件相對應的舊增量日志文件;當存在所述舊增量日志文件時,采用當前增量日志文件替換所述舊增量日志文件。
[0034]可選地于,所述寫入模塊用于將所述增量日志文件寫入日志數(shù)據(jù)庫中包括:
[0035]所述寫入模塊具體用于當增量日志文件寫入所述日志數(shù)據(jù)庫時發(fā)生錯誤,將寫入的日志數(shù)據(jù)進行回滾。
[0036]本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法及裝置,通過從應用服務器中抓取日志數(shù)據(jù),生成新日志文件;將新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取出新增的內容作為增量日志文件;將該增量日志文件寫入日志數(shù)據(jù)庫中,并從應用服務器中刪除已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)??梢?,本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法及裝置,能夠對抓取到的日志數(shù)據(jù)進行備份,在應用服務器發(fā)生宕機,未及時發(fā)送出去的日志不會丟失。另外,本發(fā)明只在日志服務器建立了一套數(shù)據(jù)庫,節(jié)約了存儲的資源。
【附圖說明】
[0037]圖1為本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法的一種【具體實施方式】的流程圖;
[0038]圖2為本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法的另一種【具體實施方式】的流程圖;
[0039]圖3為本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸裝置的一種【具體實施方式】的結構框圖。
【具體實施方式】
[0040]為了使本技術領域的人員更好地理解本發(fā)明方案,下面結合附圖和【具體實施方式】對本發(fā)明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0041]本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法的一種【具體實施方式】的流程圖如圖1所示,該方法包括:
[0042]步驟SlOl:從應用服務器抓取日志數(shù)據(jù);
[0043]步驟S102:根據(jù)抓取的日志數(shù)據(jù)生成新日志文件;
[0044]步驟S103:將所述新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取新增的內容作為增量日志文件;
[0045]步驟S104:將所述增量日志文件寫入日志數(shù)據(jù)庫中,并從所述應用服務器中刪除已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)。
[0046]本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法,通過從應用服務器中抓取日志數(shù)據(jù),生成新日志文件;將新日志文件與日志數(shù)據(jù)庫中原有的日志文件進行比較,提取出新增的內容作為增量日志文件;將該增量日志文件寫入日志數(shù)據(jù)庫中,并從應用服務器中刪除已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù)??梢?,本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法,能夠對抓取到的日志數(shù)據(jù)進行備份,在應用服務器發(fā)生宕機,未及時發(fā)送出去的日志不會丟失。另外,本發(fā)明只在日志服務器建立了一套數(shù)據(jù)庫,節(jié)約了存儲的資源。
[0047]本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法的另一種【具體實施方式】的流程圖如圖2所示,該方法包括:
[0048]步驟S201:根據(jù)預定時間間隔定時從應用服務器抓取當天的全量日志數(shù)據(jù);
[0049]步驟S202:根據(jù)抓取的日志數(shù)據(jù)生成新日志文件;
[0050]步驟S203:判斷日志數(shù)據(jù)庫中是否存在與新日志文件相對應的舊日志文件;
[0051 ] 步驟S204:當存在舊日志文件時,將新日志文件與舊日志文件進行比較,提取新增的內容作為增量日志文件;當不存在舊日志文件時,創(chuàng)建一個空文件作為舊日志文件,提取新日志文件的內容作為增量日志文件;
[0052]步驟S205:將增量日志文件寫入日志數(shù)據(jù)庫中,并從應用服務器中刪除已寫入日志數(shù)據(jù)庫的日志數(shù)據(jù);
[0053]步驟S206:判斷日志數(shù)據(jù)庫中是否存在與當前增量日志文件相對應的舊增量日志文件;當存在舊增量日志文件時,采用當前增量日志文件替換舊增量日志文件。
[0054]可選地,本實施例所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法在上述將所述增量日志文件寫Λ日志數(shù)據(jù)庫的過程中,當增量日志文件寫入所述日志數(shù)據(jù)庫時發(fā)生錯誤,則將寫入的日志數(shù)據(jù)進行回滾。
[0055]本發(fā)明所提供的系統(tǒng)日志數(shù)據(jù)傳輸方法能夠降低日志數(shù)據(jù)丟失的風險,減少存儲的冗余。
[0056]為使本領域技術人員更好地理解本發(fā)明,以下通過一個具體示例更好地闡述本發(fā)明實施例的處理過程:
[0057]步驟S301:設定每半個小時日志服務器從應用服務器上抓取日志文件到日志服務器上,例如今天是2012年8月31日,日志服務器便會每半個小時抓取今天的全量日志數(shù)據(jù),例如:GatewayServer_INFO_log.2Ol2O8310
[0058]步驟S302:日志服務器抓取到日志數(shù)據(jù)后,對日志數(shù)據(jù)進行重命名,命名為以new結尾的文件,例如GatewayServer_INFO_log.20120831.new,表示這個文件是新日志文件。
[0059]步驟S303:判斷日志服務器中是否存有 GatewayServer-_INFO_log.2012083