本發明專利技術公開了一種日志數據傳輸的方法和系統,其中所述日志數據傳輸涉及將應用服務器產生的日志數據傳送至日志服務器的過程,所述日志服務器中包括日志數據庫,或者,所述日志服務器與日志數據庫相連,所述方法包括:日志服務器定時從所述應用服務器抓取日志數據,并將所述日志數據寫入日志數據庫中;從所述應用服務器中刪除所述已寫入日志數據庫的日志數據,本發明專利技術能降低數據丟失的風險及減少存儲的冗余。
【技術實現步驟摘要】
本專利技術涉及日志處理的
,具體涉及一種日志數據傳輸的方法和系統。
技術介紹
日志(log)用來儲存和記錄系統運行情況和用戶使用情況的詳細信息,這些信息是查看系統運行狀態和排查問題的主要依據。例如,某個軟件中應用程序出現崩潰情況,那么可以從程序事件日志中找到相應的記錄,從而幫助相關技術人員分析并解決問題。以線上系統日志信息為例,日志信息可以用來對線上業務運行過程的記錄和運行程序的監控,通過分析記錄的日志信息可以為出現和可能出現的錯誤進行提示、警告,還可以統計業務信息,為業務邏輯改進和應用程序升級提供可靠的依據。參考圖I所示的一種現有技術中基于C語言程序生成的日志記錄系統的結構示意圖,現有的日志記錄系統具體可以包括應用服務器11和日志服務器12,其中,所述應用服務器11中包括多個應用程序111,以及LIB庫(一種基于Linux平臺的靜態庫或者動態庫) 112形式掛接在各個應用程序模塊上的日志采集模塊,以及,與所述日志采集模塊相連的日志客戶端113;所述日志服務器12與DB 13相連。在這種現有的日志記錄系統中,通常會針對每個應用程序模塊111配置一個日志采集模塊112,在應用程序模塊111中調用日志采集模塊112的接口,通過參數傳遞方式將日志級別、日志記錄時間、日志內容、日志流水號、應用程序名等日志信息,傳入日志采集模塊112,日志采集模塊112將采集到的日志信息寫入LIB庫112中的消息隊列。日志客戶端 113讀取消息隊列中的日志信息通過網絡通信發給遠端的日志服務器12。日志服務器將收到的信息插入到數據庫(DB) 13中。在上述日志傳輸的過程中,應用服務器上各應用程序模塊111產生的日志信息通過LIB庫發送給日志客戶端113,所述日志客戶端保存所收到的日志,再根據配置的日志服務器IP地址和相關端口號,將所收到的日志發送給日志服務器。日志服務器接收所述日志,將所接收到的日志統一保存到DB中。這種方案一旦應用服務器11發生宕機,未及時發送出去的日志就會丟失,在日志服務器12處理完日志之前,是無法查看到當前發生的日志;另外,這種方案將在應用服務器上和日志服務器上分別建立一套數據庫,存儲兩套日志,造成了存儲的冗余。因此,本領域技術人員需要迫切解決的問題是提供一種日志數據傳輸的方法及系統,能降低數據丟失的風險及減少存儲的冗余。
技術實現思路
鑒于上述問題,提出了本專利技術以便提供一種克服上述問題或者至少部分地解決上述問題的一種日志數據傳輸的方法和相應的一種日志數據傳輸的系統。依據本專利技術的一個方面,提供了一種日志數據傳輸的方法,所述日志數據傳輸涉及將應用服務器產生的日志數據傳送至日志服務器的過程,所述日志服務器中包括日志數據庫,或者,所述日志服務器與日志數據庫相連,所述方法包括日志服務器定時從所述應用服務器抓取日志數據,并將所述日志數據寫入日志數據庫中;從所述應用服務器中刪除所述已寫入日志數據庫的日志數據。可選地,所述日志服務器定時從所述應用服務器抓取日志數據,并將所述日志數據寫入日志數據庫中的步驟包括子步驟SI、日志服務器定時從所述應用服務器抓取日志數據;子步驟S2、根據所述抓取的日志數據生成新日志文件;子步驟S3、判斷所述日志服務器中是否存在舊日志文件;若是,則執行子步驟S5, 若否,則執行子步驟S4;子步驟S4、創建一個空文件作為舊日志文件,轉子步驟S5 ;子步驟S5、將所述新日志文件與舊日志文件進行比較,生成增量日志文件;子步驟S6、將所述增量日志文件寫入日志數據庫中。可選地,所述子步驟S5進一步包括 子步驟SI I、將所述新日志文件與舊日志文件進行比較,提取新增內容生成新比較文件;子步驟S12、采用所述新比較文件替換在先的舊比較文件;子步驟S13、去除所述新比較文件中的冗余數據后,生成新的增量日志文件;子步驟S14、采用所述新增量日志文件替換在先的舊增量日志文件。可選地,所述日志服務器定時從所述應用服務器抓取日志數據,并將所述日志數據寫入日志數據庫中的步驟還包括子步驟S7、采用所述新日志文件替換舊日志文件。可選地,所述子步驟SI為,日志服務器定時從所述應用服務器抓取當天的全量日志數據。可選地,所述日志服務器定時從所述應用服務器抓取日志數據,并將所述日志數據寫入日志數據庫中的步驟還包括子步驟S8、若在將所述增量日志文件寫入日志數據庫中發生錯誤,則將寫入的日志數據進行回滾。根據本專利技術的另一方面,提供了一種日志數據傳輸的系統,包括 應用服務器和日志服務器,所述應用服務器與日志服務器相連,所述日志服務器與日志數據庫相連;所述日志服務器還包括日志采集模塊,適于定時從所述應用服務器抓取日志數據,并將所述日志數據寫入日志數據庫中;日志刪除模塊,適于刪除應用服務器中已寫入日志數據庫的日志數據。可選地,所述日志采集模塊包括日志數據抓取子模塊,適于定時從所述應用服務器抓取日志數據;日志文件生成子模塊,適于根據所述抓取的日志數據生成新日志文件;判斷子模塊,適于判斷所述日志服務器中是否存在舊日志文件;若否,則調用創建子模塊,若是,則調用比較子模塊;創建子模塊,適于創建一個空文件作為舊日志文件;比較子模塊,適于將所述新日志文件與舊日志文件進行比較,生成增量日志文件; 記錄子模塊,適于將所述增量日志文件寫入日志數據庫中。可選地,所述比較子模塊進一步包括提取單元,適于提取所述新日志文件與舊日志文件比較生成的新增內容新比較文件;第一替換單元,適于將所述新比較文件替換在先的舊比較文件;冗余數據刪除單元,適于去除所述新比較文件中的冗余數據后,生成新的增量日志文件;第二替換單元,適于將所述新增量日志文件替換在先的舊增量日志文件。可選地,所述日志采集模塊還包括第三替換子模塊,適于將新日志文件替換舊日志文件。可選地,所述日志采集模塊還包括回滾子模塊,適于所述增量日志文件寫入日志數據庫中發生錯誤時,將寫入的日志數據進行回滾。根據本專利技術的日志數據傳輸方法及系統,可以由日志服務器定時從應用服務器主動抓取當天全量的日志數據,抓取日志數據進行集中后則將應用服務器上已寫入日志數據庫的日志數據進行刪除;由此解決了現有技術在服務器宕機時未及時發送出去的日志數據會丟失的問題,取得了降低數據丟失的風險和存儲的冗余的有益效果。由于日志數據庫可以位于日志服務器中,也可以單獨設置,與日志服務器相連,日志數據庫可以按照需求控制內存空間的容量,定期清理不再需要的日志數據,日志服務器抓取日志數據進行集中后則將應用服務器上已寫入日志數據庫的日志數據刪除,降低了存儲的冗余。上述說明僅是本專利技術技術方案的概述,為了能夠更清楚了解本專利技術的技術手段, 而可依照說明書的內容予以實施,并且為了讓本專利技術的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本專利技術的具體實施方式。附圖說明通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本專利技術的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖I示出了根據本專利技術一個實施例的現有技術的日志傳輸系統的結構示意圖2示出了根據本專利技術一個實施例的一種日志數據傳輸方法實施例的流程圖3示出了根據本專利技術一個實施例的一種日志數據傳輸系統實施例的結構框本文檔來自技高網...
【技術保護點】
一種日志數據傳輸的方法,其特征在于,所述日志數據傳輸涉及將應用服務器產生的日志數據傳送至日志服務器的過程,所述日志服務器中包括日志數據庫,或者,所述日志服務器與日志數據庫相連,所述方法包括:日志服務器定時從所述應用服務器抓取日志數據,并將所述日志數據寫入日志數據庫中;從所述應用服務器中刪除所述已寫入日志數據庫的日志數據。
【技術特征摘要】
【專利技術屬性】
技術研發人員:柴昱,
申請(專利權)人:北京奇虎科技有限公司,奇智軟件北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。