本發(fā)明涉及數(shù)據(jù)處理技術(shù),尤其涉及一種日志采集方法及服務(wù)器。
背景技術(shù):
隨著業(yè)務(wù)的不斷發(fā)展,為了及時(shí)獲取用戶感知的數(shù)據(jù)信息并基于所獲取的數(shù)據(jù)信息進(jìn)行必要的故障診斷,通常采用傳統(tǒng)的日志采集技術(shù)來(lái)獲取數(shù)據(jù)信息。具體地,部署多個(gè)一樣的采集程序,一個(gè)采集程序可以同時(shí)采集多臺(tái)主機(jī)上的日志內(nèi)容,之后匯總所有的日志內(nèi)容并以日志文件的形式存儲(chǔ)在磁盤(pán)中。這樣,在需要進(jìn)行日志內(nèi)容查看時(shí),需要人工打開(kāi)日志文件并通過(guò)查找的命令信息進(jìn)行搜索來(lái)判斷每次搜索到的日志內(nèi)容是否屬于待查找的日志內(nèi)容。
然而,傳統(tǒng)的日志采集技術(shù)存在如下技術(shù)問(wèn)題:
1)直接采集日志,無(wú)法對(duì)日志內(nèi)容進(jìn)行壓縮,占用網(wǎng)絡(luò)帶寬資源大;
2)容易出現(xiàn)丟包情況,且丟包后無(wú)法在找回;
3)海量的日志采集,導(dǎo)致日志采集延時(shí)嚴(yán)重,無(wú)法實(shí)現(xiàn)日志的實(shí)時(shí)采集。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例期望提供一種日志采集方法及服務(wù)器,能夠在保證節(jié)省網(wǎng)絡(luò)帶寬資源和日志內(nèi)容完整性的情況下,實(shí)現(xiàn)對(duì)日志內(nèi)容的實(shí)時(shí)采集。
為達(dá)到上述目的,本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供一種日志采集方法,所述方法包括:
獲取日志文件;
對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;
將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列。
上述方案中,所述對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志,包 括:
根據(jù)動(dòng)態(tài)鏈接庫(kù)API對(duì)所述日志文件進(jìn)行組裝處理,以形成交易報(bào)文日志。
上述方案中,所述將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列,包括:
根據(jù)所述交易報(bào)文日志對(duì)應(yīng)報(bào)文的流水號(hào)與可靠安全隊(duì)列之間的對(duì)應(yīng)關(guān)系,將所述交易報(bào)文日志分發(fā)存儲(chǔ)至對(duì)應(yīng)的可靠安全隊(duì)列。
上述方案中,所述方法還包括:
在交易日志開(kāi)關(guān)打開(kāi)或網(wǎng)絡(luò)不通的情況下,將所述交易日志文件記錄在本地文件中。
上述方案中,所述方法還包括:
對(duì)所述交易報(bào)文日志進(jìn)行異常校驗(yàn);
當(dāng)確定所述交易報(bào)文日志存在異常情況時(shí),通過(guò)發(fā)起明細(xì)交易日志采集請(qǐng)求的方式重新獲取交易報(bào)文日志。
本發(fā)明實(shí)施例還提供一種服務(wù)器,所述服務(wù)器包括獲取模塊、收集處理模塊和分發(fā)模塊;
所述獲取模塊,用于獲取日志文件;
所述收集處理模塊,用于對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;
所述分發(fā)模塊,用于將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列。
上述方案中,所述收集處理模塊,具體用于根據(jù)動(dòng)態(tài)鏈接庫(kù)API對(duì)所述日志文件進(jìn)行組裝處理,以形成交易報(bào)文日志。
上述方案中,所述分發(fā)模塊,具體用于根據(jù)所述交易報(bào)文日志對(duì)應(yīng)報(bào)文的流水號(hào)與可靠安全隊(duì)列之間的對(duì)應(yīng)關(guān)系,將所述交易報(bào)文日志分發(fā)存儲(chǔ)至對(duì)應(yīng)的可靠安全隊(duì)列。
上述方案中,所述服務(wù)器還包括記錄模塊;
所述記錄模塊,用于在交易日志開(kāi)關(guān)打開(kāi)或網(wǎng)絡(luò)不通的情況下,將所述交易日志文件記錄在本地文件中。
上述方案中,所述服務(wù)器還包括校驗(yàn)?zāi)K;
所述校驗(yàn)?zāi)K,用于對(duì)所述交易報(bào)文日志進(jìn)行異常校驗(yàn);
所述獲取模塊,還用于當(dāng)確定所述交易報(bào)文日志存在異常情況時(shí),通過(guò)發(fā)起明細(xì)交易日志采集請(qǐng)求的方式重新獲取交易報(bào)文日志。
本發(fā)明實(shí)施例所提供的日志采集方法及服務(wù)器,獲取日志文件;對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列。如此,能夠在保證節(jié)省網(wǎng)絡(luò)帶寬資源和日志內(nèi)容完整性的情況下,實(shí)現(xiàn)對(duì)日志內(nèi)容的實(shí)時(shí)采集。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例日志采集方法的實(shí)現(xiàn)流程示意圖一;
圖2為本發(fā)明實(shí)施例日志采集方法的實(shí)現(xiàn)流程示意圖二;
圖3為本發(fā)明實(shí)施例日志采集方法的實(shí)現(xiàn)流程示意圖三;
圖4為本發(fā)明實(shí)施例服務(wù)器的組成結(jié)構(gòu)示意圖一;
圖5為本發(fā)明實(shí)施例服務(wù)器的組成結(jié)構(gòu)示意圖二;
圖6為本發(fā)明實(shí)施例服務(wù)器的組成結(jié)構(gòu)示意圖三;
圖7為本發(fā)明一應(yīng)用實(shí)例日志采集方法的具體實(shí)現(xiàn)流程示意圖。
具體實(shí)施方式
在本發(fā)明實(shí)施例中,獲取日志文件;對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列。
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。
實(shí)施例一
圖1為本發(fā)明實(shí)施例日志采集方法的實(shí)現(xiàn)流程示意圖一,如圖1所示,本發(fā)明實(shí)施例日志采集方法包括:
步驟S101:獲取日志文件;
具體地,用于實(shí)現(xiàn)日志采集功能的服務(wù)器獲取由日志生成服務(wù)器生成的日 志文件;所述獲取日志文件的方式可以是實(shí)時(shí)獲取,也可以是周期性獲取。當(dāng)所述獲取日志文件的方式選用實(shí)時(shí)獲取時(shí),可以很好地保證日志采集的實(shí)時(shí)性,但是這種獲取方式是以犧牲網(wǎng)絡(luò)帶寬資源為代價(jià)的;當(dāng)所述獲取日志文件的方式選用周期性獲取時(shí),需要在確定周期的大小時(shí),有效均衡日志采集的實(shí)時(shí)性和網(wǎng)絡(luò)帶寬資源的開(kāi)銷(xiāo)。所述服務(wù)器可以包括智能手機(jī)、平板電腦、筆記本電腦、以及個(gè)人數(shù)字助理等。
步驟S102:對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;
具體地,用于實(shí)現(xiàn)日志采集功能的服務(wù)器根據(jù)動(dòng)態(tài)鏈接庫(kù)API對(duì)所述日志文件進(jìn)行組裝處理,以形成交易報(bào)文日志。由于預(yù)先已在所述API中設(shè)置有API函數(shù),因此當(dāng)服務(wù)器獲取到日志文件后,即可通過(guò)API函數(shù)對(duì)所述日志文件進(jìn)行組裝處理。
步驟S103:將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列。
具體地,服務(wù)器根據(jù)所述交易報(bào)文日志對(duì)應(yīng)報(bào)文的流水號(hào)與可靠安全隊(duì)列之間的對(duì)應(yīng)關(guān)系,將所述交易報(bào)文日志分發(fā)存儲(chǔ)至對(duì)應(yīng)的可靠安全隊(duì)列。這里,服務(wù)器中的API首先根據(jù)所述交易報(bào)文日志對(duì)應(yīng)報(bào)文的流水號(hào)與可靠安全隊(duì)列的總數(shù)進(jìn)行簡(jiǎn)單的取模運(yùn)算,以保證具有相同流水號(hào)的報(bào)文,進(jìn)入相同的可靠安全隊(duì)列。
如此,通過(guò)本發(fā)明實(shí)施例日志采集方法,能夠在保證節(jié)省網(wǎng)絡(luò)帶寬資源和日志內(nèi)容完整性的情況下,實(shí)現(xiàn)對(duì)日志內(nèi)容的實(shí)時(shí)采集。
實(shí)施例二
圖2為本發(fā)明實(shí)施例日志采集方法的實(shí)現(xiàn)流程示意圖二,如圖2所示,本發(fā)明實(shí)施例日志采集方法包括:
步驟S101:獲取日志文件;
步驟S102:對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;
步驟S103:將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列;
本發(fā)明實(shí)施例二中的步驟S101至步驟S103可以分別對(duì)應(yīng)地參見(jiàn)實(shí)施例一 中的步驟S101至步驟S103,為節(jié)約篇幅,這里不再贅述。
步驟S201:在交易日志開(kāi)關(guān)打開(kāi)或網(wǎng)絡(luò)不通的情況下,將所述交易日志文件記錄在本地文件中。
具體地,服務(wù)器在將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列的過(guò)程中,當(dāng)存在交易日志開(kāi)關(guān)打開(kāi)或網(wǎng)絡(luò)不通時(shí),將所述交易日志文件記錄在本地文件中。
如此,通過(guò)本發(fā)明實(shí)施例日志采集方法,能夠在保證節(jié)省網(wǎng)絡(luò)帶寬資源和日志內(nèi)容完整性的情況下,實(shí)現(xiàn)對(duì)日志內(nèi)容的實(shí)時(shí)采集。
實(shí)施例三
圖3為本發(fā)明實(shí)施例日志采集方法的實(shí)現(xiàn)流程示意圖三,如圖3所示,本發(fā)明實(shí)施例日志采集方法包括:
步驟S101:獲取日志文件;
步驟S102:對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;
步驟S103:將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列;
本發(fā)明實(shí)施例三中的步驟S101至步驟S103可以分別對(duì)應(yīng)地參見(jiàn)實(shí)施例一中的步驟S101至步驟S103,為節(jié)約篇幅,這里不再贅述。
步驟S301:對(duì)所述交易報(bào)文日志進(jìn)行異常校驗(yàn);
具體地,用于實(shí)現(xiàn)日志采集功能的服務(wù)器對(duì)存儲(chǔ)至可靠安全隊(duì)列中的交易報(bào)文日志進(jìn)行異常校驗(yàn),以確定所述交易報(bào)文日志是否存在異常,如所述交易報(bào)文日志本身是否存在異常或者所述交易報(bào)文日志對(duì)應(yīng)的交易過(guò)程屬于自動(dòng)探測(cè)。
步驟S302:當(dāng)確定所述交易報(bào)文日志存在異常情況時(shí),通過(guò)發(fā)起明細(xì)交易日志采集請(qǐng)求的方式重新獲取交易報(bào)文日志。
具體地,當(dāng)通過(guò)異常檢測(cè),確定所述交易報(bào)文日志存在異常情況時(shí),用于實(shí)現(xiàn)日志采集功能的服務(wù)器通過(guò)發(fā)起明細(xì)交易日志采集請(qǐng)求的方式重新獲取交易報(bào)文日志。
如此,通過(guò)本發(fā)明實(shí)施例日志采集方法,能夠在保證節(jié)省網(wǎng)絡(luò)帶寬資源和 日志內(nèi)容完整性的情況下,實(shí)現(xiàn)對(duì)日志內(nèi)容的實(shí)時(shí)采集。
實(shí)施例四
圖4為本發(fā)明實(shí)施例服務(wù)器的組成結(jié)構(gòu)示意圖,如圖4所示,所述服務(wù)器包括獲取模塊401、收集處理模塊402和分發(fā)模塊403;
所述獲取模塊401,用于獲取日志文件;
所述收集處理模塊402,用于對(duì)所述日志文件進(jìn)行收集處理,獲得交易報(bào)文日志;
具體地,所述收集處理模塊402根據(jù)動(dòng)態(tài)鏈接庫(kù)API對(duì)所述日志文件進(jìn)行組裝處理,以形成交易報(bào)文日志。
所述分發(fā)模塊403,用于將所述交易報(bào)文日志分發(fā)至可靠安全隊(duì)列。
具體地,所述分發(fā)模塊403根據(jù)所述交易報(bào)文日志對(duì)應(yīng)報(bào)文的流水號(hào)與可靠安全隊(duì)列之間的對(duì)應(yīng)關(guān)系,將所述交易報(bào)文日志分發(fā)存儲(chǔ)至對(duì)應(yīng)的可靠安全隊(duì)列。
在一實(shí)施例中,如圖5所示,所述服務(wù)器還包括記錄模塊404;
所述記錄模塊404,用于在交易日志開(kāi)關(guān)打開(kāi)或網(wǎng)絡(luò)不通的情況下,將所述交易日志文件記錄在本地文件中。
在一實(shí)施例中,如圖6所示,所述服務(wù)器還包括校驗(yàn)?zāi)K405;
所述校驗(yàn)?zāi)K405,用于對(duì)所述交易報(bào)文日志進(jìn)行異常校驗(yàn);
所述獲取模塊401,還用于當(dāng)確定所述交易報(bào)文日志存在異常情況時(shí),通過(guò)發(fā)起明細(xì)交易日志采集請(qǐng)求的方式重新獲取交易報(bào)文日志。
在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例所述服務(wù)器中的各模塊均可以通過(guò)裝置中的處理器實(shí)現(xiàn),也可以通過(guò)具體的邏輯電路實(shí)現(xiàn);比如,在實(shí)際應(yīng)用中,可由位于所述服務(wù)器中的中央處理器(CPU)、微處理器(MPU)、數(shù)字信號(hào)處理器(DSP)、或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)實(shí)現(xiàn)。
具體應(yīng)用場(chǎng)景:
圖7為本發(fā)明一應(yīng)用實(shí)例日志采集方法的具體實(shí)現(xiàn)流程示意圖,如圖7所示,所述日志采集方法具體包括:
步驟1、需要在日志生成服務(wù)器部署日志收集器程序;
步驟2、日志收集器連接可靠安全隊(duì)列,針對(duì)每個(gè)可靠安全隊(duì)列的連接,建立緩存隊(duì)列,所述緩存隊(duì)列中的數(shù)據(jù)通過(guò)合并壓縮后發(fā)往可靠安全隊(duì)列;
其中,所述可靠安全隊(duì)列有多個(gè)。
步驟3、日志收集器在收到API發(fā)送過(guò)來(lái)的報(bào)文后,根據(jù)API分配好的入哪個(gè)可靠安全隊(duì)列,將交易報(bào)文日志保存到相應(yīng)的緩存隊(duì)列;
步驟4、日志收集器的緩存隊(duì)列需要限制大小,當(dāng)交易報(bào)文日志所屬報(bào)文發(fā)送異常時(shí),如果緩存隊(duì)列的大小超過(guò)限制的大小,則將整個(gè)緩存隊(duì)列中的報(bào)文寫(xiě)本地文件;否則就將發(fā)送失敗的報(bào)文插回緩存隊(duì)列。
這樣,在本發(fā)明應(yīng)用實(shí)例中,通過(guò)API日志收集器,對(duì)日志內(nèi)容進(jìn)行壓縮;當(dāng)日志收集器在將交易報(bào)文日志所屬報(bào)文發(fā)送至可靠安全隊(duì)列的過(guò)程中,當(dāng)交易日志開(kāi)關(guān)打開(kāi)或網(wǎng)絡(luò)不通的情況下,將所述交易日志文件記錄在本地文件中。如此,能夠在保證節(jié)省網(wǎng)絡(luò)帶寬資源和日志內(nèi)容完整性的情況下,實(shí)現(xiàn)對(duì)日志內(nèi)容的實(shí)時(shí)采集。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。