CN102457401A - 日志模拟生成方法、装置和服务器 - Google Patents
日志模拟生成方法、装置和服务器 Download PDFInfo
- Publication number
- CN102457401A CN102457401A CN201210003977XA CN201210003977A CN102457401A CN 102457401 A CN102457401 A CN 102457401A CN 201210003977X A CN201210003977X A CN 201210003977XA CN 201210003977 A CN201210003977 A CN 201210003977A CN 102457401 A CN102457401 A CN 102457401A
- Authority
- CN
- China
- Prior art keywords
- daily record
- rule
- log
- scheduling
- maker
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种日志模拟生成方法、装置和服务器。其中方法包括:获取日志规则定义文件;对所述日志规则定义文件中的数据字段生成规则和日志生成规则进行解析生成内部规则数据结构;通过日志生成引擎根据所述日志规则定义文件中的日志调度规则及所述内部规则数据结构生成日志;通过日志发包调度引擎发送所述日志。本发明所述方法通过使用日志规则定义文件灵活高效地实现了对各种格式系统日志的模拟,不需要引入任何额外的软件工具开发工作,测试环境的实现也非常便利。
Description
技术领域
本发明涉及一种日志模拟生成方法、装置和服务器,属于设备的日志测试技术领域。
背景技术
系统日志(Syslog)是一种在网络环境中广泛使用的调度类型,被各种操作系统、网络设备和安全设备官方支持,成为日志的重要标准。因此对于其他类型的调度类型,在实际应用中往往也会通过日志转换器转换为系统日志格式,便于进行统一采集、管理和分析。
在网络安全、设备管理和行为审计监控领域,都需要对各设备发出的系统日志进行解析和管理。在对系统日志管理产品的测试过程中,测试人员需要构造所需的各种测试环境,包括:
正常环境:尽可能真实地模拟出现实网络中在正常情况下各设备发出的日志情况。
异常环境:模拟在网络遭受到某种攻击时各设备发出的日志情况。如:当网络中爆发蠕虫病毒时,各IDS和防火墙的相关告警日志数量可能飚升。
压力环境:以某个正常环境为基准,将各日志数量提升数倍、或将产生日志的各设备数提升数倍,以测试产品在满负荷高强度情况下的工作状态,并测出产品的实际性能。
然而使用实际设备构造测试环境的问题在于:
1、复杂且成本昂贵:构造一个完全由实际设备构成的测试环境在设备成本上是难以承受的。
2、无法构造出异常和某些极端环境:要让实际设备以最大强度产生日志或表现出遭受某种特定攻击时的行为极为困难,甚至无法实现。
因此,现有技术中通常都使用能够模拟实际设备发出系统日志的日志模拟生成装置来解决这个测试难题。
然而系统日志是一种格式极为宽松自由的日志格式,实际上除了长度不能超过1024字节的强制要求以外,几乎没有别的针对系统日志格式的强制要求。因此不同厂商甚至同一厂商的不同产品所生成的系统日志在格式上都存在巨大差异。这种差异的存在,给系统日志的模拟生成带来了技术难题。
发明内容
本发明提供一种日志模拟生成方法、装置和服务器,用以模拟实际设备发出各种格式的系统日志。
本发明一方面提供一种日志模拟生成方法,其中包括:
获取日志规则定义文件;
对所述日志规则定义文件中的数据字段生成规则和日志生成规则进行解析生成内部规则数据结构;
通过日志生成引擎根据所述日志规则定义文件中的日志调度规则及所述内部规则数据结构生成日志;
通过日志发包调度引擎发送所述日志。
本发明另一方面提供一种日志模拟生成装置,其中包括:
文件获取模块,用于获取日志规则定义文件;
规则解析模块,用于对文件获取模块获取的所述日志规则定义文件中的数据字段生成规则和日志生成规则进行解析生成内部规则数据结构;
日志生成引擎,用于根据文件获取模块获取的所述日志规则定义文件中的日志调度规则及规则解析模块得到的所述内部规则数据结构生成日志;
日志发包调度引擎,用于发送日志生成引擎生成的所述日志。
本发明又一方面提供一种服务器,其中包括上述装置。
本发明所述方法通过使用日志规则定义文件灵活高效地实现了对各种格式系统日志的模拟,不需要引入任何额外的软件工具开发工作,测试环境的实现也非常便利。
附图说明
图1为本发明所述日志模拟生成方法实施例的流程图;
图2为图1所示步骤120的具体流程图;
图3为图1所示步骤130的具体流程图;
图4为本发明所述变量表的结构示意图;
图5为图1所示步骤140的具体流程图;
图6为本发明所述日志模拟生成装置实施例的结构示意图;
图7为图6所示规则解析模块20的具体结构示意图;
图8为图6所示日志生成引擎30的具体结构示意图;
图9为图6所示日志发包调度引擎40的具体结构示意图。
具体实施方式
图1为本发明所述日志模拟生成方法实施例的流程图,如图所示,该方法包括如下步骤:
步骤110,获取日志规则定义文件。
其中,所述日志规则定义文件是由人为编写的,其中包含有设备日志模拟规则,该设备日志模拟规则提供了模拟真实设备的日志产生内容和行为所需的全部信息,如:日志格式、日志种类和每秒发出的日志数等。具体地,所述设备日志模拟规则可以通过任何能够被计算机所理解的形式构造,例如可以通过基于XML(Extensible Markup Language,可扩展标记语言)的配置文件对设备日志模拟规则进行定义。所述设备日志模拟规则包括:数据字段生成规则、日志生成规则和日志调度规则,将在后续内容进行详细说明。
步骤120,对所述日志规则定义文件中的数据字段生成规则和日志生成规则进行解析生成内部规则数据结构。
其中,所述数据字段生成规则定义了日志中变化部分的生成方式和策略,具体地,在规则定义XML文件中,所有的数据字段生成规则都必须位于<FieldRule>节点下。所述日志生成规则定义了日志的输出结果,具体是将日志中的固定部分和变化部份组合在一起,从而完整定义了日志的生成方式。其中,所述数据字段生成规则包括元规则和复合规则,有关元规则、复合规则、日志生成规则以及具体的解析过程,将在后续内容进行详细介绍。
步骤130,通过日志生成引擎根据所述日志规则定义文件中的日志调度规则及所述内部规则数据结构生成日志。
其中,所述日志调度规则定义了设备生成日志的动态行为。如:1秒内设备会生成多少日志、各种不同日志的比例又是多少等。日志调度规则可以让本发明所述装置逼真地模拟出在实际运行环境下设备输出日志的表现,并且还可以根据需要任意模拟出各种在现实环境下难以出现的极端状况。具体的日志生成过程将在后续内容进行介绍。
步骤140,通过日志发包调度引擎发送所述日志。
其中,所述日志发包调度引擎负责决定每条日志的发送时机,并调用系统的以太网驱动将下述发送缓冲区中存放的日志进行发送,也就是说,日志发包调度引擎是在日志的发送行为上对实际设备进行模拟,例如可以模拟如下的日志发送行为,具体的日志发送过程将在后续内容进行详细介绍:
1.模拟均匀发送所有日志的行为:假设1秒内需要发送1000条日志,则日志发包调度引擎将会以每隔0.1毫秒发送1条的频率将这些日志发送出去,使日志在时间上的分布均匀。这样能更为真实地模拟实际设备发送日志时的行为。
2.模拟突发类日志的发送行为:属于相同日志类型的突发日志将连续发送完毕,中间不穿插其他日志。
3.模拟实时类日志的发送行为:属于不同日志类型的实时日志将被有意地随机混合发送,更为真实地模拟实际设备发送这类日志时的行为。
本实施例所述方法通过使用日志规则定义文件灵活高效地实现了对各种格式系统日志的模拟,不需要引入任何额外的软件工具开发工作,测试环境的实现也非常便利;而且,只要使用相同的日志规则定义文件进行日志的模块生成,就能够得到基本相同的模拟日志环境,从而有利于故障重现以及测试环境的还原。
以下对元规则和复合规则分别进行说明:
元规则
所述元规则用于构造几种基础数据类型的字符串,其类型与日志生成引擎内置的数据生成器(generator)一一对应,元规则直接定义了上述数据生成器在生成数据时的工作参数,供后续日志生成引擎使用,本实施例所述元规则可以产生各种格式丰富的数据类型,足以满足目前业界常见设备的日志构造需要,举例如下:
(1)互联网协议(ip)地址元规则,一条ip元规则举例如下:
其中:
●name为规则名称,用来唯一标识一条规则;
●type指定了规则类型,取值可以为ip、mac、int、timestamp、string。对于ip元规则来说,type的取值为ip;
●generator指定了构造IP的生成器类型,取值可以为:random、random-item、sequence、sequence-item。其中:
■random生成器每次产生一个随机数,该随机数的取值范围可以由range属性限制;
■random-item生成器每次从一个item集合中随机选择一个表项作为生成的值(该类型的生成器的定义方式在后面描述);
■sequence生成器与random类似,只是其生成的值是顺序递增的而非随机数。在到达range指定范围的上限后,下一个值会从range的下限开始计数。
■sequence-item生成器与random-item类似,只是其每次顺序从item集合中选择一个表项作为生成的值。
●range指定了取值范围,其格式为“下限,上限”。如:本例中range限制了生成器只能随机生成192.168.0.*子网内的IP地址
则该示例规则会随机生成诸如“192.168.0.23”、“192.168.0.123”这样的IP地址。
(2)媒体访问控制(mac)地址元规则,一条mac元规则举例如下:
其大部分属性与ip元规则相同,这里只描述特有属性:
●format用于指定生成的MAC地址的格式。如:
■“1-1-1-1-1-1”表示MAC地址每输出1个字节就插入一个“-”做分隔。如“00-13-CE-8D-5F-5C”
■“1:1:1:1:1:1”表示MAC地址每输出1个字节就插入一个“:”做分隔。如“00:13:CE:8D:5F:5C”
■“3:3”表示MAC地址每输出3个字节就插入一个“:”做分隔。如“0013CE:8D5F5C”
■“6”表示MAC地址中间没有任何分隔符,一次性连续输出6个字节。如“0013CE8D5F5C”
该示例规则会随机生成诸如“00-13-CE-8D-5F-5C”、“00-13-CE-EA-10-00”这样的MAC地址。
(3)整数(int)元规则,一条int元规则举例如下:
其属性与ip元规则相同,这里不再敷述。该示例规则会随机生成7~9位整数值。
(4)时间戳(timestamp)元规则,一条timestamp元规则举例如下:
其中:
●generator较ip元规则多了一种“current”类型。该生成器的含义是在生成日志时以当前系统的时间作为对应时间戳的值。这样可以更为精准地模拟出设备在时间戳上的行为。
●format用于指定时间戳格式。具体的定义如下:
■%a:英文星期名缩写,如“Thu”
■%A:英文星期名,如“Thursday”
■%w:数字表示的星期,取值为0(周日)~6
■%b:英文月份名缩写,如“Aug”
■%B:英文月份名,如“August”
■%d:日,取值为01~31
■%m:月,取值为01~12
■%Y:4位数字表示的年,如:2011
■%y:2位数字表示的年,取值为00~99
■%H:24小时制小时,取值为00~23
■%I:12小时制小时,取值为01~12
■%M:分钟,取值为00~59
■%p:上午/下午,取值为AM或PM
■%S:秒,取值为00~59
该示例规则会根据当前系统时间生成时间戳,格式如“Sep 2812:10:29”。
(4)字符串(string)元规则,一条string元规则举例如下:
其中:
●string类型的元规则没有range属性(显然字符串没有取值范围)。然而其比其他规则多了charset和length两个属性;
●charset决定了用于构造字符串的字符集。构造器仅会从charset指定的字符集合中选择用于构造字符串的字符。如:假设charset=”0123456789”,则字符串只会由数字构成。
●length决定了构造的字符串的长度范围,格式为“下限,上限”。生成器构造的字符串长度将被限制在length所指定的范围内。
则该示例规则会随机生成一个长度在1~16之间的,由小写字母和数字构成的字符串。如:“a”、“asdef01js”。
在实际使用中,另一种常用的string元规则举例如下:
其用到了之前提到的“random-item”生成器。该生成器需要配合“Item”使用。一个元规则可以包含1个以上的Item定义。“random-item”生成器在工作时会从中随机选择一个Item,并将它的value作为结果。
如该示例规则会随机产生一个Item中所列的邮箱域名。
复合规则
所述复合规则将多个元规则组合成一条更为强大的规则,使用户编写规则定义时更为方便。例如,如下一条复合规则利用在string元规则中列举的两个示例元规则组合成一个随机电子邮件地址,如“a163.com”和“asdef01jsruijie.com.cn”。具体举例如下:
其中:
●复合规则的type取值为“composite”;
●复合规则没有generator属性,取而代之的是template属性;
●template属性定义了复合规则所使用的元规则的组合方式,其中:
■%xxx%表示引用了变量xxx,该变量的生成规则由对应Variable的rule属性指定;
■一个变量可以在一个template中引用多次。如:假设变量a的值为1。则template=“%a%%a%%a%”得到的结果就是“111”。
●Variable定义了变量的构造方式,其中:
■name指定了变量名,必须与template中引用到的变量名对应;
■rule指定了生成该变量所使用的规则名(可以为元规则或复合规则)。在调用复合规则时template中对应变量处会被rule所指定规则的生成结果替换。
日志生成规则
日志生成规则在格式上与复合规则非常相似,也可以被看作是一个较为复杂的复合规则。然而日志生成规则不能像复合规则那样再用于构造其他的规则。在规则定义XML文件中,所有的日志生成规则都必须位于<LogRule>节点下。一条日志生成规则举例如下:
由于日志生成规则与复合规则非常相似,故这里不再解释各属性含义。根据上述的日志生成规则会生成如下的日志,其中,画线部份是根据对应的元规则或复合规则动态生成的部份:
由此可见,用户可以灵活运用上述各种元规则和复合规则,通过编写对应的日志生成规则就能达到让日志生成引擎根据需要构造出对应格式设备日志的效果。在此过程中用户无需编写任何程序代码,这正是本发明通用性的体现。
以下参照图2,对上述步骤120中的解释过程进行详细说明,如图所示,包括如下步骤:
步骤121,将所述复合规则和所述日志生成规则展开成元规则。
由于上述日志生成引擎只能识别元规则,故必须将日志生成规则中引用的所有复合规则展开成元规则。以如下数据字段生成规则为例:
其中的日志生成规则“示例规则”如下:
该日志生成规则引用了一个元规则“内网IP”和两个复合规则“邮箱地址”。而“邮箱地址”这个复合规则又是元规则“随机字符串”和“邮箱域名”的组合。则在规则解析阶段,其将被展开成如下形式:
可以看出,原始规则中引用的复合规则“邮箱地址”,被规则解析模块等价展开为两组元规则“随机字符串”和“邮箱域名”的组合。对日志生成规则的展开处理可能会重复多次,直到其中不再包含任何复合规则为止。
步骤122,从所述数据字段生成规则中包含的所述元规则以及展开后得到的所述元规则中提取出生成器类型和生成器参数。
其中,所述生成器类型用于通知日志生成引擎使用哪种数据生成器,具体可以由元规则的“type”和“generator”属性值共同确定;所述生成器参数用于通知日志生成引擎由数据生成器生成处于哪些范围的数据,具体可以由元规则中的“range”、“charset”等属性确定。
步骤123,根据所述生成器类型和生成器参数构建所述内部规则数据结构。
具体地,该内部规则数据结构可以为采用链表形成的变量表,每个日志生成规则生成一张变量表,其中包含了该规则所引用的所有变量。日志生成规则中的日志模板(template)内对变量的引用被转化为一个指向变量表中对应变量的指针。由于允许template多次引用同一个变量,因此有可能有多个指针指向同一个变量,该链表由字符串常量节点(对应日志中固定部分)和指向变量的指针节点构成。从后面对日志生成引擎的描述可以看到,该数据结构对提高日志生成的效率很有帮助。
以下参照图3,详细说明上述步骤130的日志生成过程,如图所示,包括如下步骤:
步骤131,所述日志生成引擎根据所述日志调度规则确定下一时段待发送日志的日志类型、调度类型和日志数量。
其中,所述日志调度规则可以表示为如下表2的形式:
表2:日志调度规则表
日志类型 | 调度类型 | 日志数量 |
QQ聊天审计 | 实时 | 1000 |
Web访问审计 | 实时 | 3000 |
电子邮件审计 | 突发 | 300 |
...... | ...... | ...... |
其中,“日志类型”即日志名,表示相应的日志生成规则名;“调度类型”列保存该类型日志使用的调度策略;“日志数量”表示待生成的此类日志的数量,该数量的计算规则如下:
对于调度类型为实时(realtime)的日志,表明这类日志每秒钟都要发送,其值等于对应下述日志调度规则中的eps属性值,
对于调度类型为突发(burst)的日志:如果当前处于突发之间的间隔(delay)期(即不产生这类日志的时段,由日志调度规则中的delay属性决定),则在表2中不会出现此类日志对应的表项,因为表2中只存储需要产生和发送的日志类型;如果当前处于突发期(即需要发送突发日志的时段,由日志调度规则中的time属性决定),则其值等于相应日志调度规则的eps属性值。
具体地,在规则定义XML文件中,所有的日志调度规则都必须位于<ScheduleRule>节点下。一条日志调度规则举例如下:
<Rule name=″Web访问审计″type=″realtime″eps=″3000″> |
其中:
●name指定了该调度规则所对应的日志生成规则名称。一条日志生成规则最多只能有一条对应的日志调度规则;
●type指定了调度器的类型,取值为realtime和burst:
■realtime调度器:模拟常见的实时日志发送行为。这类日志的特点是发出的时间随机,在时间上分布比较均匀。
■burst调度器:模拟某些特殊的批量日志发送行为。批量日志的特点是总是集中在某一固定时段发送。如一些流量审计设备会每隔5分钟集中发送所有用户在这5分钟内的流量使用情况,则此时该设备的流量审计日志在时间分布上呈现每5分钟突发(burst)一轮的现象。
●eps指定了每秒中要发出的realtime日志数量。
如示例的日志调度规则会让日志生成引擎每秒生成3000条“Web访问审计类日志”,并由日志调度引擎在下一时段内相对均匀地将这3000条日志发送出去。
一条突发日志调度规则举例如下:
其中:
“time”指定了突发的持续时间,单位为秒。倘若某些设备突发日志很多无法在下一时段内发送完毕,则可以通过设置此参数模拟该设备持续数秒发送突发日志的行为。如:某设备会定期集中发出10000条日志,这些日志需要4秒才能发送完毕。则可以设置eps=“2500”time=“4”来模拟设备的这一行为。
“delay”指定了每轮突发的间隔时间,单位为秒。以每5分钟发出一轮流量审计日志的设备为例,设置delay为300(即5分钟)即可模拟该设备的这一行为。
如示例的日志调度规则会让日志生成引擎每隔300秒生成一批1000条的“最近5分钟流量审计”类日志,并由日志调度引擎在突发时间到达时将这1000条日志在1秒内连续发送出去。
可见本实施例所述日志调度规则可以让用户自由灵活地模拟设备的日志发送行为。与使用真实设备测试相比,本实施例不但能模拟出设备在正常环境中发送日志的行为,也能轻易地模拟出设备在异常情况下发送日志的行为。以入侵检测系统设备为例,在网络遭到某种蠕虫病毒的大规模攻击时,其发出的对应蠕虫的告警日志量会飙升。如果用现实设备来模拟这一情况是很困难的,因为不可能为了测试而让网络中真的感染这种蠕虫病毒。但对于本实施例而言,只要简单地调高对应蠕虫告警日志的日志调度规则的eps属性,即加大每秒中生成这类日志的数量,即可轻松实现该异常情况的模拟。这样测试人员可以轻松利用本发明模拟各种极端情况下的设备行为,而不会对实际网络带来影响。
步骤132,所述日志生成引擎根据所述调度类型和日志数量以及所述生成器类型和生成器参数,调用相应的数据生成器生成相应的日志保存在生成缓冲区。
具体地,当内部规则数据结构可以为采用链表形成的变量表时,如图4所示,相应的数据生成器可以将生成结果作为变量值写回变量表中,在往生成缓冲区保存时,从头开始遍历规则所对应的链表,依次输出每个节点的内容到对应的生成缓冲区,若遇到的是字符串常量节点,则输出该节点内容;
若遇到的是指向变量的指针节点,则输出该变量对应的变量值,对应于图4的输出结果为:
IP=192.168.0.15,UserName=″asijopmo″,Account=″asijopmo″ |
由此可见,本实施例所述方法非常简单高效,只要调用对应的数据生成器生成几个变量值,并遍历一遍链表拼接出最终的日志字符串即可,因此能以极高的性能构造各种设备的日志,速度能达到每秒10万条以上。
具体地,根据网络安全和管理领域设备生成的日志的实际情况,本实施例所述日志生成引擎内置如下种类的数据生成器,可选地,也可以根据实际需要增加新的生成器:
ip类生成器:用于生成IP地址。包含:随机(random)生成器,用于生成一个随机的IP地址;随机项(random-item)生成器,用于从元规则定义的一个IP集合中随机返回一个IP;序列(sequence)生成器,用于生成递增的IP,如:192.168.0.1、192.168.0.2......;序列项(sequence-item)生成器,用于顺序返回元规则定义的IP集合中的IP;
mac类生成器:用于生成MAC地址。包含random、random-item、sequence、sequence-item生成器,其作用与ip类生成器类似;
int类生成器:用于生成整数。包含random、random-item、sequence、sequence-item生成器,其作用与ip类生成器类似;
timestamp类生成器:用于生成时间戳。包含random、random-item、sequence、sequence-item生成器,其作用与ip类生成器类似;
当前(current)生成器:总是返回生成器被调用(即要求构造日志)时当前的系统时间;
字符串(string)类生成器:用于生成字符串。包括:random生成器,用于从元规则给出的一个字符集中随机选择字符拼接成一个指定长度的字符串;random-item、sequence-item生成器,用于随机或顺序返回元规则定义的一个字符串列表中的字符串;string类生成器不包含sequence生成器。
步骤133,当所述下一时段的全部待发送日志生成完毕后,将所述全部待发送日志从所述生成缓冲区转存到发送缓冲区。
其中,所述生成缓冲区和发送缓冲区共同构成双内存缓冲结构,其中的生成缓冲区用于存放正在由日志生成引擎生成的日志,准备下一时段发送;发送缓冲区用于存放着已生成完毕的日志,以便将来由日志发包调度引擎读取并发送。通过这种双内存缓冲结构,使得日志的生成和发送过程可以并行执行,从而得到平稳而高效的日志生成及发送性能。
以下参照图5,详细说明上述步骤140的日志发送过程,如图所示,包括如下步骤:
步骤141,所述日志发包调度引擎根据所述日志数量计算所述下一时段中相邻两个日志的发送间隔t。
由于本实施例中所述日志发包调度引擎要发送的日志都是由日志生成引擎已经预先构造好的,因此发送一条日志所需的时间与日志生成规则的复杂度无关,而仅与日志发包调度引擎的调度和发包开销有关。发送一条日志所需的发包开销是可以精确测量的,例如可以让日志发包调度引擎全速发送日志,并统计在1秒内能发出的日志数即可得到设备的单位时间最大发包数EPSmax,相应的每条日志所需的发包开销为1/EPSmax;根据该发包开销,计算得到所述相邻两个日志的发送间隔t=(1/eps-1/EPSmax)×1000000,单位为微秒μs,1秒=1000000微秒。
步骤142,所述日志发包调度引擎从由所述日志生成引擎确定的日志类型中随机选取一个日志类型。
其中,所述日志类型对应于表2所示日志调度规则表中的日志类型。当被选取的所述日志类型对应的调度类型为实时类时,执行步骤143;当被选取的所述日志类型对应的调度类型为突发类时,执行步骤144。
步骤143,所述日志发包调度引擎将位于所述发送缓冲区中的一条对应所述被选取的日志类型的日志进行发送,并等待t微秒后返回执行上一步骤142。
步骤144,所述日志发包调度引擎将位于所述发送缓冲区中的对应所述被选取的日志类型的全部日志进行每隔t微秒的连续发送,发送完毕后,返回执行上一步骤142。
例如,当日志发包调度引擎首次选取的日志类型为QQ聊天审计时,则日志发包调度引擎发送相应的1000条日志中的一条,然后等待t微秒后再次进行随机选取,如果再次选取的日志类型为电子邮件审计,则每隔t微秒连续发送相应的300个日志,直到发送完毕后,再次由日志发包调度引擎进行随机选取,如果再次选取的日志类型仍为QQ聊天审计,则发送剩余的999条日志中的一条,然后等待t微秒后再次进行随机选取,依次类推,直到发送缓冲区全部的待发送日志均发送完毕。被发送完毕的日志类型被从日志调度规则表中删除。
此处需要说明的是:
1、上述提到的几种元规则和对应的生成器类型在实际应用中也可能根据需要被扩展为更多的类型。如:可以根据需要增加IPv6地址、浮点数数据类型对应的生成器和元规则等。
2、上述日志生成引擎实际只根据几种类型固定的元规则生成对应的可变部分字符串,因此以硬件的方式实现日志生成引擎和日志发包调度引擎都是可能的,这些硬件例如可以为网络处理器微码、现场可编程门阵列(Field-Programmable Gate Array,简称:FPGA)和专用集成电路(ApplicationSpecific Integrated Circuit,简称:ASIC)等。
3、本实施例所述的日志模拟生成装置中也可以同时使用多个日志规则定义文件,每个日志规则定义文件也可以模拟生成多个设备的日志。
图6为本发明所述日志模拟生成装置实施例的结构示意图,用以实现上述方法,如图所示,该装置包括:文件获取模块10、规则解析模块20、日志生成引擎30及日志发包调度引擎40,另外还或以包括生成缓冲区51和发送缓冲区52,共同构成双内存缓冲区。可选地,该装置可以应用于服务器/PC端架构中的服务器中,该装置的工作原理如下:
先由文件获取模块10获取日志规则定义文件;然后由规则解析模块20对文件获取模块10获取的所述日志规则定义文件中的数据字段生成规则和日志生成规则进行解析生成内部规则数据结构,具体地,所述数据字段生成规则包含元规则和复合规则,如图7所示,所述规则解析模块20先通过展开单元21将所述复合规则和所述日志生成规则展开成元规则;然后由提取单元22从所述数据字段生成规则中包含的所述元规则以及由展开单元21展开后得到的所述元规则中提取出生成器类型和生成器参数;最后由构建单元23根据提取单元22提取的所述生成器类型和生成器参数构建所述内部规则数据结构。具体的举例可参见上述方法实施例的相关说明。
此后,由日志生成引擎30根据文件获取模块10获取的所述日志规则定义文件中的日志调度规则及规则解析模块20得到的所述内部规则数据结构生成日志。具体地,如图8所示,日志生成引擎30先通过确定单元31根据所述日志调度规则确定下一时段待发送日志的日志类型、调度类型和日志数量;然后由调用单32根据确定单元31确定的所述日志类型、调度类型和日志数量以及提取单元22提取的所述生成器类型和生成器参数,调用相应的数据生成器生成相应的日志保存在生成缓冲区51;当所述下一时段的全部待发送日志生成完毕后,由转存单元33将所述全部待发送日志从所述生成缓冲区转51存到发送缓冲区52。
此后,日志发包调度引擎40发送日志生成引擎30生成的所述日志,例如可以调用以太网驱动来实现发送动作。具体地,如图9所示,日志发包调度引擎40先由计算单元41根据确定单元31确定的所述日志数量计算所述下一时段待发送日志的发送间隔t;然后由选择单元42从由所述确定单元确定的所述日志类型中随机选取一个日志类型;当选择单元42选取的所述日志类型对应的调度类型为实时类时,由实时单元43将位于所述发送缓冲区52中的一条对应所述被选取的日志类型的日志进行发送,并等待t微秒后返回执行选择单元42的功能;当选择单元42选取的所述日志类型对应的调度类型为突发类时,由突发单元44将位于所述发送缓冲区52中的对应所述被选取的日志类型的全部日志进行每隔t微秒的连续发送,发送结束后返回执行选择单元42的功能。
此处需要说明的是,上述图7~9中所示的粗实线表示总线结构,但只要能保证各模板间的正常通信,采用其他结构进行连接也是可以的。
本发明所述装置通过使用日志规则定义文件灵活高效地实现了对各种格式系统日志的模拟,不需要引入任何额外的软件工具开发工作,测试环境的实现也非常便利。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种日志模拟生成方法,其特征在于,包括:
获取日志规则定义文件;
对所述日志规则定义文件中的数据字段生成规则和日志生成规则进行解析,生成内部规则数据结构;
通过日志生成引擎根据所述日志规则定义文件中的日志调度规则及所述内部规则数据结构生成日志;
通过日志发包调度引擎发送所述日志。
2.根据权利要求1所述的方法,其特征在于,所述数据字段生成规则包含元规则和复合规则,所述解析包括:
将所述复合规则和所述日志生成规则展开成元规则;
从所述数据字段生成规则中包含的所述元规则以及展开后得到的所述元规则中提取出生成器类型和生成器参数;
根据所述生成器类型和生成器参数构建所述内部规则数据结构。
3.根据权利要求2所述的方法,其特征在于,所述生成日志包括:
所述日志生成引擎根据所述日志调度规则确定下一时段待发送日志的日志类型、调度类型和日志数量;
根据所述日志类型、调度类型和日志数量以及所述生成器类型和生成器参数,调用相应的数据生成器生成相应的日志保存在生成缓冲区;
当所述下一时段的全部待发送日志生成完毕后,将所述全部待发送日志从所述生成缓冲区转存到发送缓冲区。
4.根据权利要求3所述的方法,其特征在于,发送所述日志包括:
所述日志发包调度引擎根据所述日志数量计算所述下一时段待发送日志的发送间隔t;
从由所述日志生成引擎确定的日志类型中随机选取一个日志类型;
当被选取的所述日志类型对应的调度类型为实时类时,将位于所述发送缓冲区中的一条对应所述被选取的日志类型的日志进行发送,并等待t微秒后返回执行上一步骤;
当被选取的所述日志类型对应的调度类型为突发类时,将位于所述发送缓冲区中的对应所述被选取的日志类型的全部日志进行每隔t微秒的连续发送,发送结束后返回执行上一步骤。
5.一种日志模拟生成装置,其特征在于,包括:
文件获取模块,用于获取日志规则定义文件;
规则解析模块,用于对文件获取模块获取的所述日志规则定义文件中的数据字段生成规则和日志生成规则进行解析生成内部规则数据结构;
日志生成引擎,用于根据文件获取模块获取的所述日志规则定义文件中的日志调度规则及规则解析模块得到的所述内部规则数据结构生成日志;
日志发包调度引擎,用于发送日志生成引擎生成的所述日志。
6.根据权利要求5所述的装置,其特征在于,所述数据字段生成规则包含元规则和复合规则,所述规则解析模块包括:
展开单元,用于将所述复合规则和所述日志生成规则展开成元规则;
提取单元,用于从所述数据字段生成规则中包含的所述元规则以及由展开单元展开后得到的所述元规则中提取出生成器类型和生成器参数;
构建单元,用于根据提取单元提取的所述生成器类型和生成器参数构建所述内部规则数据结构。
7.根据权利要求6所述的装置,其特征在于,所述日志生成引擎包括:
确定单元,用于根据所述日志调度规则确定下一时段待发送日志的日志类型、调度类型和日志数量;
调用单元,用于根据确定单元确定的所述日志类型、调度类型和日志数量以及提取单元提取的所述生成器类型和生成器参数,调用相应的数据生成器生成相应的日志保存在生成缓冲区;
转存单元,用于当所述下一时段的全部待发送日志生成完毕后,将所述全部待发送日志从所述生成缓冲区转存到发送缓冲区。
8.根据权利要求7所述的装置,其特征在于,所述日志发包调度引擎包括:
计算单元,用于根据确定单元确定的所述日志数量计算所述下一时段待发送日志的发送间隔t;
选择单元,用于从由所述确定单元确定的所述日志类型中随机选取一个日志类型;
实时单元,用于当选择单元选取的所述日志类型对应的调度类型为实时类时,将位于所述发送缓冲区中的一条对应所述被选取的日志类型的日志进行发送,并等待t微秒后返回执行选择单元的功能;
突发单元,用于当选择单元选取的所述日志类型对应的调度类型为突发类时,将位于所述发送缓冲区中的对应所述被选取的日志类型的全部日志进行每隔t微秒的连续发送,发送结束后返回执行选择单元的功能。
9.根据权利要求7所述的装置,其特征在于,所述日志模拟生成装置还包括:所述生成缓冲区及所述发送缓冲区。
10.一种服务器,其特征在于,包括权利要求5~9中任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210003977.XA CN102457401B (zh) | 2012-01-06 | 2012-01-06 | 日志模拟生成方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210003977.XA CN102457401B (zh) | 2012-01-06 | 2012-01-06 | 日志模拟生成方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102457401A true CN102457401A (zh) | 2012-05-16 |
CN102457401B CN102457401B (zh) | 2014-07-30 |
Family
ID=46040101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210003977.XA Active CN102457401B (zh) | 2012-01-06 | 2012-01-06 | 日志模拟生成方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102457401B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869022A (zh) * | 2015-05-27 | 2015-08-26 | 北京京东尚科信息技术有限公司 | 一种日志采集方法及系统 |
CN105404813A (zh) * | 2015-10-26 | 2016-03-16 | 浪潮电子信息产业股份有限公司 | 一种基于主机防御系统的日志生成方法、装置及系统 |
CN106484728A (zh) * | 2015-08-31 | 2017-03-08 | 联芯科技有限公司 | 日志数据的生成方法、解析方法、生成装置及解析装置 |
CN107423204A (zh) * | 2017-06-30 | 2017-12-01 | 北京五八信息技术有限公司 | 应用程序的操作日志的处理方法、装置以及终端 |
CN109639528A (zh) * | 2018-12-19 | 2019-04-16 | 北京奇安信科技有限公司 | 一种日志接收性能的测试方法及装置 |
CN111488260A (zh) * | 2019-01-29 | 2020-08-04 | 华为技术有限公司 | 数据模板获取方法、装置、计算机设备以及可读存储介质 |
CN112612673A (zh) * | 2020-12-24 | 2021-04-06 | 青岛海尔科技有限公司 | 拨测日志的分析方法及装置,存储介质及电子装置 |
CN113141403A (zh) * | 2021-04-21 | 2021-07-20 | 北京天空卫士网络安全技术有限公司 | 一种日志传输方法和装置 |
CN115941453A (zh) * | 2023-02-23 | 2023-04-07 | 浙江德塔森特数据技术有限公司 | 基于数字孪生的机房告警处理方法、装置、机房及介质 |
CN116225855A (zh) * | 2023-05-10 | 2023-06-06 | 荣耀终端有限公司 | 日志生成方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447991A (zh) * | 2008-11-19 | 2009-06-03 | 中国人民解放军信息安全测评认证中心 | 用于测试入侵检测系统的测试装置及测试方法 |
CN101707608A (zh) * | 2009-11-27 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 应用层协议自动化测试方法及装置 |
CN102096626A (zh) * | 2010-12-27 | 2011-06-15 | 意法·爱立信半导体(北京)有限公司 | 移动终端测试日志的处理方法和移动终端 |
-
2012
- 2012-01-06 CN CN201210003977.XA patent/CN102457401B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447991A (zh) * | 2008-11-19 | 2009-06-03 | 中国人民解放军信息安全测评认证中心 | 用于测试入侵检测系统的测试装置及测试方法 |
CN101707608A (zh) * | 2009-11-27 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 应用层协议自动化测试方法及装置 |
CN102096626A (zh) * | 2010-12-27 | 2011-06-15 | 意法·爱立信半导体(北京)有限公司 | 移动终端测试日志的处理方法和移动终端 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869022B (zh) * | 2015-05-27 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 一种日志采集方法及系统 |
CN104869022A (zh) * | 2015-05-27 | 2015-08-26 | 北京京东尚科信息技术有限公司 | 一种日志采集方法及系统 |
CN106484728A (zh) * | 2015-08-31 | 2017-03-08 | 联芯科技有限公司 | 日志数据的生成方法、解析方法、生成装置及解析装置 |
CN105404813A (zh) * | 2015-10-26 | 2016-03-16 | 浪潮电子信息产业股份有限公司 | 一种基于主机防御系统的日志生成方法、装置及系统 |
CN105404813B (zh) * | 2015-10-26 | 2018-06-29 | 浪潮电子信息产业股份有限公司 | 一种基于主机防御系统的日志生成方法、装置及系统 |
CN107423204A (zh) * | 2017-06-30 | 2017-12-01 | 北京五八信息技术有限公司 | 应用程序的操作日志的处理方法、装置以及终端 |
CN109639528A (zh) * | 2018-12-19 | 2019-04-16 | 北京奇安信科技有限公司 | 一种日志接收性能的测试方法及装置 |
CN111488260B (zh) * | 2019-01-29 | 2023-12-08 | 华为云计算技术有限公司 | 数据模板获取方法、装置、计算机设备以及可读存储介质 |
CN111488260A (zh) * | 2019-01-29 | 2020-08-04 | 华为技术有限公司 | 数据模板获取方法、装置、计算机设备以及可读存储介质 |
CN112612673A (zh) * | 2020-12-24 | 2021-04-06 | 青岛海尔科技有限公司 | 拨测日志的分析方法及装置,存储介质及电子装置 |
CN112612673B (zh) * | 2020-12-24 | 2022-12-06 | 青岛海尔科技有限公司 | 拨测日志的分析方法及装置、存储介质及电子装置 |
CN113141403B (zh) * | 2021-04-21 | 2023-10-17 | 北京天空卫士网络安全技术有限公司 | 一种日志传输方法和装置 |
CN113141403A (zh) * | 2021-04-21 | 2021-07-20 | 北京天空卫士网络安全技术有限公司 | 一种日志传输方法和装置 |
CN115941453A (zh) * | 2023-02-23 | 2023-04-07 | 浙江德塔森特数据技术有限公司 | 基于数字孪生的机房告警处理方法、装置、机房及介质 |
CN116225855A (zh) * | 2023-05-10 | 2023-06-06 | 荣耀终端有限公司 | 日志生成方法、电子设备及存储介质 |
CN116225855B (zh) * | 2023-05-10 | 2023-09-12 | 荣耀终端有限公司 | 日志生成方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102457401B (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102457401B (zh) | 日志模拟生成方法、装置和服务器 | |
Barahanov et al. | Necessary and sufficient conditions for passivity of the LuGre friction model | |
CN101399821A (zh) | 记录/重放系统、记录器/播放器、和方法 | |
WO2005015440A3 (en) | Extending service-oriented business frameworks | |
CN104300557B (zh) | 基于支持向量机的电力系统有功功率振荡类型判别方法 | |
Inçki et al. | Runtime verification of IoT systems using complex event processing | |
Damodaran et al. | Cyber modeling & simulation for cyber-range events | |
CN104008055B (zh) | 软件测试的方法、设备及系统 | |
CN108052440A (zh) | 对业务系统操作逻辑的修正方法、装置、设备和存储介质 | |
CN107819611A (zh) | 基于iec61850多服务端仿真的客户端测试方法 | |
CN113746842A (zh) | 基于Protobuf协议动态解析的消息发送方法 | |
CN103605610A (zh) | 一种基于Hadoop 的软件测试系统与方法 | |
US7783469B2 (en) | Methods and computer program products for benchmarking multiple collaborative services provided by enterprise software | |
CN104734918A (zh) | 一种轻量级网页性能测试架构和方法 | |
Benharrat et al. | Constraint-based oracles for timed distributed systems | |
CN109586996A (zh) | 基于网络报文时延比对的云平台实时性测试系统及方法 | |
CN117252149A (zh) | 芯片验证方法及装置、芯片验证系统和可读存储介质 | |
US8380482B2 (en) | System and method for clock modeling in discrete-event simulation | |
CN107681658A (zh) | 一种面向调度主站的电网低频振荡分析测试方法及系统 | |
TW201407503A (zh) | 雲端平台工作排程方法及系統 | |
CN107342904B (zh) | 一种用于变电站站控层设备测试的数据模拟方法及装置 | |
KR102494709B1 (ko) | 분산전원의 기능을 시험하기 위한 시스템 및 그 방법 | |
CN103927406B (zh) | 用于驾驶具有性能函数服务器的飞行器的系统和飞行器 | |
Wang et al. | Modeling web request and session level arrivals | |
CN103414649B (zh) | 一种分布式负载发生器的实现方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201221 Address after: 200030 full floor, 4 / F, 190 Guyi Road, Xuhui District, Shanghai Patentee after: Shanghai Ruishan Network Co., Ltd Address before: 100036 Beijing Haidian District City 33 Fuxing Road Cuiwei East 1106 Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd. |