專(zhuān)利名稱(chēng):日志模擬生成方法、裝置和服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種日志模擬生成方法、裝置和服務(wù)器,屬于設(shè)備的日志測(cè)試技術(shù)領(lǐng)域。
背景技術(shù):
系統(tǒng)日志(Syslog)是一種在網(wǎng)絡(luò)環(huán)境中廣泛使用的調(diào)度類(lèi)型,被各種操作系統(tǒng)、 網(wǎng)絡(luò)設(shè)備和安全設(shè)備官方支持,成為日志的重要標(biāo)準(zhǔn)。因此對(duì)于其他類(lèi)型的調(diào)度類(lèi)型,在實(shí)際應(yīng)用中往往也會(huì)通過(guò)日志轉(zhuǎn)換器轉(zhuǎn)換為系統(tǒng)日志格式,便于進(jìn)行統(tǒng)一采集、管理和分析。在網(wǎng)絡(luò)安全、設(shè)備管理和行為審計(jì)監(jiān)控領(lǐng)域,都需要對(duì)各設(shè)備發(fā)出的系統(tǒng)日志進(jìn)行解析和管理。在對(duì)系統(tǒng)日志管理產(chǎn)品的測(cè)試過(guò)程中,測(cè)試人員需要構(gòu)造所需的各種測(cè)試環(huán)境,包括正常環(huán)境盡可能真實(shí)地模擬出現(xiàn)實(shí)網(wǎng)絡(luò)中在正常情況下各設(shè)備發(fā)出的日志情況。異常環(huán)境模擬在網(wǎng)絡(luò)遭受到某種攻擊時(shí)各設(shè)備發(fā)出的日志情況。如當(dāng)網(wǎng)絡(luò)中爆發(fā)蠕蟲(chóng)病毒時(shí),各IDS和防火墻的相關(guān)告警日志數(shù)量可能飚升。壓力環(huán)境以某個(gè)正常環(huán)境為基準(zhǔn),將各日志數(shù)量提升數(shù)倍、或?qū)a(chǎn)生日志的各設(shè)備數(shù)提升數(shù)倍,以測(cè)試產(chǎn)品在滿(mǎn)負(fù)荷高強(qiáng)度情況下的工作狀態(tài),并測(cè)出產(chǎn)品的實(shí)際性能。然而使用實(shí)際設(shè)備構(gòu)造測(cè)試環(huán)境的問(wèn)題在于1、復(fù)雜且成本昂貴構(gòu)造一個(gè)完全由實(shí)際設(shè)備構(gòu)成的測(cè)試環(huán)境在設(shè)備成本上是難以承受的。2、無(wú)法構(gòu)造出異常和某些極端環(huán)境要讓實(shí)際設(shè)備以最大強(qiáng)度產(chǎn)生日志或表現(xiàn)出遭受某種特定攻擊時(shí)的行為極為困難,甚至無(wú)法實(shí)現(xiàn)。因此,現(xiàn)有技術(shù)中通常都使用能夠模擬實(shí)際設(shè)備發(fā)出系統(tǒng)日志的日志模擬生成裝置來(lái)解決這個(gè)測(cè)試難題。然而系統(tǒng)日志是一種格式極為寬松自由的日志格式,實(shí)際上除了長(zhǎng)度不能超過(guò) IOM字節(jié)的強(qiáng)制要求以外,幾乎沒(méi)有別的針對(duì)系統(tǒng)日志格式的強(qiáng)制要求。因此不同廠(chǎng)商甚至同一廠(chǎng)商的不同產(chǎn)品所生成的系統(tǒng)日志在格式上都存在巨大差異。這種差異的存在,給系統(tǒng)日志的模擬生成帶來(lái)了技術(shù)難題。
發(fā)明內(nèi)容
本發(fā)明提供一種日志模擬生成方法、裝置和服務(wù)器,用以模擬實(shí)際設(shè)備發(fā)出各種格式的系統(tǒng)日志。本發(fā)明一方面提供一種日志模擬生成方法,其中包括獲取日志規(guī)則定義文件;對(duì)所述日志規(guī)則定義文件中的數(shù)據(jù)字段生成規(guī)則和日志生成規(guī)則進(jìn)行解析生成內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu);
通過(guò)日志生成引擎根據(jù)所述日志規(guī)則定義文件中的日志調(diào)度規(guī)則及所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)生成日志;通過(guò)日志發(fā)包調(diào)度引擎發(fā)送所述日志。本發(fā)明另一方面提供一種日志模擬生成裝置,其中包括文件獲取模塊,用于獲取日志規(guī)則定義文件;規(guī)則解析模塊,用于對(duì)文件獲取模塊獲取的所述日志規(guī)則定義文件中的數(shù)據(jù)字段生成規(guī)則和日志生成規(guī)則進(jìn)行解析生成內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu); 日志生成引擎,用于根據(jù)文件獲取模塊獲取的所述日志規(guī)則定義文件中的日志調(diào)度規(guī)則及規(guī)則解析模塊得到的所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)生成日志;日志發(fā)包調(diào)度引擎,用于發(fā)送日志生成引擎生成的所述日志。本發(fā)明又一方面提供一種服務(wù)器,其中包括上述裝置。本發(fā)明所述方法通過(guò)使用日志規(guī)則定義文件靈活高效地實(shí)現(xiàn)了對(duì)各種格式系統(tǒng)日志的模擬,不需要引入任何額外的軟件工具開(kāi)發(fā)工作,測(cè)試環(huán)境的實(shí)現(xiàn)也非常便利。
圖1為本發(fā)明所述日志模擬生成方法實(shí)施例的流程圖;圖2為圖1所示步驟120的具體流程圖;圖3為圖1所示步驟130的具體流程圖;圖4為本發(fā)明所述變量表的結(jié)構(gòu)示意圖;圖5為圖1所示步驟140的具體流程圖;圖6為本發(fā)明所述日志模擬生成裝置實(shí)施例的結(jié)構(gòu)示意圖;圖7為圖6所示規(guī)則解析模塊20的具體結(jié)構(gòu)示意圖;圖8為圖6所示日志生成引擎30的具體結(jié)構(gòu)示意圖;圖9為圖6所示日志發(fā)包調(diào)度引擎40的具體結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖1為本發(fā)明所述日志模擬生成方法實(shí)施例的流程圖,如圖所示,該方法包括如下步驟步驟110,獲取日志規(guī)則定義文件。其中,所述日志規(guī)則定義文件是由人為編寫(xiě)的,其中包含有設(shè)備日志模擬規(guī)則,該設(shè)備日志模擬規(guī)則提供了模擬真實(shí)設(shè)備的日志產(chǎn)生內(nèi)容和行為所需的全部信息,如日志格式、日志種類(lèi)和每秒發(fā)出的日志數(shù)等。具體地,所述設(shè)備日志模擬規(guī)則可以通過(guò)任何能夠被計(jì)算機(jī)所理解的形式構(gòu)造,例如可以通過(guò)基于XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)的配置文件對(duì)設(shè)備日志模擬規(guī)則進(jìn)行定義。所述設(shè)備日志模擬規(guī)則包括數(shù)據(jù)字段生成規(guī)則、日志生成規(guī)則和日志調(diào)度規(guī)則,將在后續(xù)內(nèi)容進(jìn)行詳細(xì)說(shuō)明。步驟120,對(duì)所述日志規(guī)則定義文件中的數(shù)據(jù)字段生成規(guī)則和日志生成規(guī)則進(jìn)行解析生成內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)。其中,所述數(shù)據(jù)字段生成規(guī)則定義了日志中變化部分的生成方式和策略,具體地, 在規(guī)則定義XML文件中,所有的數(shù)據(jù)字段生成規(guī)則都必須位于〈FieldRule〉節(jié)點(diǎn)下。所述日志生成規(guī)則定義了日志的輸出結(jié)果,具體是將日志中的固定部分和變化部份組合在一起, 從而完整定義了日志的生成方式。其中,所述數(shù)據(jù)字段生成規(guī)則包括元規(guī)則和復(fù)合規(guī)則,有關(guān)元規(guī)則、復(fù)合規(guī)則、日志生成規(guī)則以及具體的解析過(guò)程,將在后續(xù)內(nèi)容進(jìn)行詳細(xì)介紹。步驟130,通過(guò)日志生成引擎根據(jù)所述日志規(guī)則定義文件中的日志調(diào)度規(guī)則及所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)生成日志。其中,所述日志調(diào)度規(guī)則定義了設(shè)備生成日志的動(dòng)態(tài)行為。如1秒內(nèi)設(shè)備會(huì)生成多少日志、各種不同日志的比例又是多少等。日志調(diào)度規(guī)則可以讓本發(fā)明所述裝置逼真地模擬出在實(shí)際運(yùn)行環(huán)境下設(shè)備輸出日志的表現(xiàn),并且還可以根據(jù)需要任意模擬出各種在現(xiàn)實(shí)環(huán)境下難以出現(xiàn)的極端狀況。具體的日志生成過(guò)程將在后續(xù)內(nèi)容進(jìn)行介紹。步驟140,通過(guò)日志發(fā)包調(diào)度引擎發(fā)送所述日志。其中,所述日志發(fā)包調(diào)度引擎負(fù)責(zé)決定每條日志的發(fā)送時(shí)機(jī),并調(diào)用系統(tǒng)的以太網(wǎng)驅(qū)動(dòng)將下述發(fā)送緩沖區(qū)中存放的日志進(jìn)行發(fā)送,也就是說(shuō),日志發(fā)包調(diào)度引擎是在日志的發(fā)送行為上對(duì)實(shí)際設(shè)備進(jìn)行模擬,例如可以模擬如下的日志發(fā)送行為,具體的日志發(fā)送過(guò)程將在后續(xù)內(nèi)容進(jìn)行詳細(xì)介紹1.模擬均勻發(fā)送所有日志的行為假設(shè)1秒內(nèi)需要發(fā)送1000條日志,則日志發(fā)包調(diào)度引擎將會(huì)以每隔0.1毫秒發(fā)送1條的頻率將這些日志發(fā)送出去,使日志在時(shí)間上的分布均勻。這樣能更為真實(shí)地模擬實(shí)際設(shè)備發(fā)送日志時(shí)的行為。2.模擬突發(fā)類(lèi)日志的發(fā)送行為屬于相同日志類(lèi)型的突發(fā)日志將連續(xù)發(fā)送完畢, 中間不穿插其他日志。3.模擬實(shí)時(shí)類(lèi)日志的發(fā)送行為屬于不同日志類(lèi)型的實(shí)時(shí)日志將被有意地隨機(jī)混合發(fā)送,更為真實(shí)地模擬實(shí)際設(shè)備發(fā)送這類(lèi)日志時(shí)的行為。本實(shí)施例所述方法通過(guò)使用日志規(guī)則定義文件靈活高效地實(shí)現(xiàn)了對(duì)各種格式系統(tǒng)日志的模擬,不需要引入任何額外的軟件工具開(kāi)發(fā)工作,測(cè)試環(huán)境的實(shí)現(xiàn)也非常便利;而且,只要使用相同的日志規(guī)則定義文件進(jìn)行日志的模塊生成,就能夠得到基本相同的模擬日志環(huán)境,從而有利于故障重現(xiàn)以及測(cè)試環(huán)境的還原。以下對(duì)元規(guī)則和復(fù)合規(guī)則分別進(jìn)行說(shuō)明元規(guī)則所述元規(guī)則用于構(gòu)造幾種基礎(chǔ)數(shù)據(jù)類(lèi)型的字符串,其類(lèi)型與日志生成引擎內(nèi)置的數(shù)據(jù)生成器(generator) —一對(duì)應(yīng),元規(guī)則直接定義了上述數(shù)據(jù)生成器在生成數(shù)據(jù)時(shí)的工作參數(shù),供后續(xù)日志生成引擎使用,本實(shí)施例所述元規(guī)則可以產(chǎn)生各種格式豐富的數(shù)據(jù)類(lèi)型,足以滿(mǎn)足目前業(yè)界常見(jiàn)設(shè)備的日志構(gòu)造需要,舉例如下(1)互聯(lián)網(wǎng)協(xié)議(ip)地址元規(guī)則,一條ip元規(guī)則舉例如下
權(quán)利要求
1.一種日志模擬生成方法,其特征在于,包括 獲取日志規(guī)則定義文件;對(duì)所述日志規(guī)則定義文件中的數(shù)據(jù)字段生成規(guī)則和日志生成規(guī)則進(jìn)行解析,生成內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu);通過(guò)日志生成引擎根據(jù)所述日志規(guī)則定義文件中的日志調(diào)度規(guī)則及所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)生成日志;通過(guò)日志發(fā)包調(diào)度引擎發(fā)送所述日志。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)字段生成規(guī)則包含元規(guī)則和復(fù)合規(guī)則,所述解析包括將所述復(fù)合規(guī)則和所述日志生成規(guī)則展開(kāi)成元規(guī)則;從所述數(shù)據(jù)字段生成規(guī)則中包含的所述元規(guī)則以及展開(kāi)后得到的所述元規(guī)則中提取出生成器類(lèi)型和生成器參數(shù);根據(jù)所述生成器類(lèi)型和生成器參數(shù)構(gòu)建所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述生成日志包括所述日志生成引擎根據(jù)所述日志調(diào)度規(guī)則確定下一時(shí)段待發(fā)送日志的日志類(lèi)型、調(diào)度類(lèi)型和日志數(shù)量;根據(jù)所述日志類(lèi)型、調(diào)度類(lèi)型和日志數(shù)量以及所述生成器類(lèi)型和生成器參數(shù),調(diào)用相應(yīng)的數(shù)據(jù)生成器生成相應(yīng)的日志保存在生成緩沖區(qū);當(dāng)所述下一時(shí)段的全部待發(fā)送日志生成完畢后,將所述全部待發(fā)送日志從所述生成緩沖區(qū)轉(zhuǎn)存到發(fā)送緩沖區(qū)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,發(fā)送所述日志包括所述日志發(fā)包調(diào)度引擎根據(jù)所述日志數(shù)量計(jì)算所述下一時(shí)段待發(fā)送日志的發(fā)送間隔t ;從由所述日志生成引擎確定的日志類(lèi)型中隨機(jī)選取一個(gè)日志類(lèi)型; 當(dāng)被選取的所述日志類(lèi)型對(duì)應(yīng)的調(diào)度類(lèi)型為實(shí)時(shí)類(lèi)時(shí),將位于所述發(fā)送緩沖區(qū)中的一條對(duì)應(yīng)所述被選取的日志類(lèi)型的日志進(jìn)行發(fā)送,并等待t微秒后返回執(zhí)行上一步驟;當(dāng)被選取的所述日志類(lèi)型對(duì)應(yīng)的調(diào)度類(lèi)型為突發(fā)類(lèi)時(shí),將位于所述發(fā)送緩沖區(qū)中的對(duì)應(yīng)所述被選取的日志類(lèi)型的全部日志進(jìn)行每隔t微秒的連續(xù)發(fā)送,發(fā)送結(jié)束后返回執(zhí)行上 “■步驟。
5.一種日志模擬生成裝置,其特征在于,包括 文件獲取模塊,用于獲取日志規(guī)則定義文件;規(guī)則解析模塊,用于對(duì)文件獲取模塊獲取的所述日志規(guī)則定義文件中的數(shù)據(jù)字段生成規(guī)則和日志生成規(guī)則進(jìn)行解析生成內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu);日志生成引擎,用于根據(jù)文件獲取模塊獲取的所述日志規(guī)則定義文件中的日志調(diào)度規(guī)則及規(guī)則解析模塊得到的所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)生成日志;日志發(fā)包調(diào)度引擎,用于發(fā)送日志生成引擎生成的所述日志。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述數(shù)據(jù)字段生成規(guī)則包含元規(guī)則和復(fù)合規(guī)則,所述規(guī)則解析模塊包括展開(kāi)單元,用于將所述復(fù)合規(guī)則和所述日志生成規(guī)則展開(kāi)成元規(guī)則;提取單元,用于從所述數(shù)據(jù)字段生成規(guī)則中包含的所述元規(guī)則以及由展開(kāi)單元展開(kāi)后得到的所述元規(guī)則中提取出生成器類(lèi)型和生成器參數(shù);構(gòu)建單元,用于根據(jù)提取單元提取的所述生成器類(lèi)型和生成器參數(shù)構(gòu)建所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述日志生成引擎包括確定單元,用于根據(jù)所述日志調(diào)度規(guī)則確定下一時(shí)段待發(fā)送日志的日志類(lèi)型、調(diào)度類(lèi)型和日志數(shù)量;調(diào)用單元,用于根據(jù)確定單元確定的所述日志類(lèi)型、調(diào)度類(lèi)型和日志數(shù)量以及提取單元提取的所述生成器類(lèi)型和生成器參數(shù),調(diào)用相應(yīng)的數(shù)據(jù)生成器生成相應(yīng)的日志保存在生成緩沖區(qū);轉(zhuǎn)存單元,用于當(dāng)所述下一時(shí)段的全部待發(fā)送日志生成完畢后,將所述全部待發(fā)送日志從所述生成緩沖區(qū)轉(zhuǎn)存到發(fā)送緩沖區(qū)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述日志發(fā)包調(diào)度引擎包括計(jì)算單元,用于根據(jù)確定單元確定的所述日志數(shù)量計(jì)算所述下一時(shí)段待發(fā)送日志的發(fā)送間隔t ;選擇單元,用于從由所述確定單元確定的所述日志類(lèi)型中隨機(jī)選取一個(gè)日志類(lèi)型;實(shí)時(shí)單元,用于當(dāng)選擇單元選取的所述日志類(lèi)型對(duì)應(yīng)的調(diào)度類(lèi)型為實(shí)時(shí)類(lèi)時(shí),將位于所述發(fā)送緩沖區(qū)中的一條對(duì)應(yīng)所述被選取的日志類(lèi)型的日志進(jìn)行發(fā)送,并等待t微秒后返回執(zhí)行選擇單元的功能;突發(fā)單元,用于當(dāng)選擇單元選取的所述日志類(lèi)型對(duì)應(yīng)的調(diào)度類(lèi)型為突發(fā)類(lèi)時(shí),將位于所述發(fā)送緩沖區(qū)中的對(duì)應(yīng)所述被選取的日志類(lèi)型的全部日志進(jìn)行每隔t微秒的連續(xù)發(fā)送, 發(fā)送結(jié)束后返回執(zhí)行選擇單元的功能。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述日志模擬生成裝置還包括所述生成緩沖區(qū)及所述發(fā)送緩沖區(qū)。
10.一種服務(wù)器,其特征在于,包括權(quán)利要求5 9中任一項(xiàng)所述的裝置。
全文摘要
本發(fā)明提供一種日志模擬生成方法、裝置和服務(wù)器。其中方法包括獲取日志規(guī)則定義文件;對(duì)所述日志規(guī)則定義文件中的數(shù)據(jù)字段生成規(guī)則和日志生成規(guī)則進(jìn)行解析生成內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu);通過(guò)日志生成引擎根據(jù)所述日志規(guī)則定義文件中的日志調(diào)度規(guī)則及所述內(nèi)部規(guī)則數(shù)據(jù)結(jié)構(gòu)生成日志;通過(guò)日志發(fā)包調(diào)度引擎發(fā)送所述日志。本發(fā)明所述方法通過(guò)使用日志規(guī)則定義文件靈活高效地實(shí)現(xiàn)了對(duì)各種格式系統(tǒng)日志的模擬,不需要引入任何額外的軟件工具開(kāi)發(fā)工作,測(cè)試環(huán)境的實(shí)現(xiàn)也非常便利。
文檔編號(hào)H04L12/24GK102457401SQ20121000397
公開(kāi)日2012年5月16日 申請(qǐng)日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
發(fā)明者丁兆杰 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司