CN113268453A - 日志信息压缩存储方法及装置 - Google Patents
日志信息压缩存储方法及装置 Download PDFInfo
- Publication number
- CN113268453A CN113268453A CN202110585503.XA CN202110585503A CN113268453A CN 113268453 A CN113268453 A CN 113268453A CN 202110585503 A CN202110585503 A CN 202110585503A CN 113268453 A CN113268453 A CN 113268453A
- Authority
- CN
- China
- Prior art keywords
- field
- log
- log information
- compressed
- template
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种日志信息压缩存储方法、装置、电子设备及计算机可读介质。该方法包括:对日志信息进行预处理;基于所述日志信息在模板库中确定目标模板;将所述目标模板的标识写入预处理后的所述日志信息中;以字段为单位提取预处理后的所述日志信息中的日志数据;将所述日志数据按照所述目标模板的格式进行压缩存储。本公开涉及的日志信息压缩存储方法、装置、电子设备及计算机可读介质,能够降低了日志数据的所占用的存储空间、提高日志数据存储空间效率和时间效率。
Description
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种日志信息压缩存储方法、装置、电子设备及计算机可读介质。
背景技术
随着计算机技术与网络应用的快速发展,企业或机构内部部署了多套网络设备与信息系统。这些设备或系统不间断地将各自的运行状态记录为日志数据,如Web服务日志、防火墙日志、入侵检测系统日志等。日志数据是服务改进、系统审计、安全分析、数据挖掘等应用的重要数据源,因此需要长期存储信息系统的日志数据。
随着大数据、移动互联网时代的到来,信息系统变得日益复杂,面向互联网提供服务的信息系统访问量急剧增长,随之而来的系统日志数据也呈现出爆炸式增长。尤其对于一些核心系统模块,需要记录其所发生的一切操作并将其传输回数据中心以进行存储与分析,海量的日志数据对于日志系统的设计是一个巨大的挑战。因此,有效的压缩、传输并存储大规模日志数据是现代信息系统的迫切需求。
网络设备运行中在运行过程中都会产生大量的日志信息,包括运行日志、故障日志、调试日志等等。因此,日志分析是系统故障分析的重要组成部分。现有技术中,在网络设备运行中定期删除历史日志数据的情况下,可使用传统的压缩工具定期进行日志数据的压缩与轮询存储。传统压缩算法的通用性导致了其压缩率低/日志数据存储空间存储效率低。
因此,需要一种新的日志信息压缩存储方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种日志信息压缩存储方法、装置、电子设备及计算机可读介质,能够降低了日志数据的所占用的存储空间、提高日志数据存储空间效率和时间效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提出一种日志信息压缩存储方法,该方法包括:对日志信息进行预处理;基于所述日志信息在模板库中确定目标模板;将所述目标模板的标识写入预处理后的所述日志信息中;以字段为单位提取预处理后的所述日志信息中的日志数据;将所述日志数据按照所述目标模板的格式进行压缩存储。
在本公开的一种示例性实施例中,还包括:基于日志消息标识、预设字段排序、字段连接符、字段间连接符号、日志数据连接符生成多个模板;将所述多个模板存储在所述模板库中。
在本公开的一种示例性实施例中,对日志信息进行预处理,包括:确定所述日志信息的数据格式;基于所述数据格式对所述日志信息进行解析。
在本公开的一种示例性实施例中,将所述日志数据按照所述目标模板的格式进行压缩存储,包括:按照所述目标模板的格式以字段为单位依次提取所述日志数据中的字段名、字段值;基于所述字段名和所述字段值生成压缩字段;基于多个压缩字段生成压缩日志信息;基于所述多个压缩日志信息生成所述压缩日志。
在本公开的一种示例性实施例中,基于所述字段名和所述字段值生成压缩字段,包括:将所述字段名和所述字段值用字段连接符进行连接以生成所述压缩字段。
在本公开的一种示例性实施例中,其特征在于,基于多个压缩字段生成压缩日志信息,包括:将所述多个压缩字段用字段间连接符号进行连接以生成所述压缩日志信息。
在本公开的一种示例性实施例中,其特征在于,基于所述多个压缩日志信息生成所述压缩日志,包括:将所述多个压缩日志信息用日志数据连接符进行连接以生成所述压缩日志。
在本公开的一种示例性实施例中,将所述字段名和所述字段值用字段连接符进行连接以生成所述压缩字段,还包括:按照所述目标模板的格式以字段为单位依次提取所述日志数据;根据当前字段确定目标差分压缩策略;基于所述目标差分压缩策略对所述当前字段对应的日志数据进行压缩,生成压缩之后的字段值;将压缩之后的字段名和所述字段值用字段连接符进行连接以生成所述压缩字段。
在本公开的一种示例性实施例中,基于所述目标差分压缩策略对所述当前字段对应的日志数据进行压缩,包括:基于所述目标差分压缩策略对所述当前字段对应的日志数据;将所述当前字段对应的日志数据和上一字段对应的日志数据进行差分计算;存储差分计算的结果。
在本公开的一种示例性实施例中,存储差分计算的结果之前,还包括:用字段差分位图存储当前字段和上一字段之间的差分策略。
根据本公开的一方面,提出一种日志信息压缩存储装置,该装置包括:预处理模块,用于对日志信息进行预处理;模板模块,用于基于所述日志信息在模板库中确定目标模板;写入模块,用于将所述目标模板的标识写入预处理后的所述日志信息中;提取模块,用于以字段为单位提取预处理后的所述日志信息中的日志数据;压缩模块,用于将所述日志数据按照所述目标模板的格式进行压缩存储。
根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本公开的日志信息压缩存储方法、装置、电子设备及计算机可读介质,对日志信息进行预处理;基于所述日志信息在模板库中确定目标模板;将所述目标模板的标识写入预处理后的所述日志信息中;以字段为单位提取预处理后的所述日志信息中的日志数据;将所述日志数据按照所述目标模板的格式进行压缩存储的方式,能够降低了日志数据的所占用的存储空间、提高日志数据存储空间效率和时间效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种日志信息压缩存储方法及装置的系统框图。
图2是根据一示例性实施例示出的一种日志信息压缩存储方法的流程图。
图3是根据另一示例性实施例示出的一种日志信息压缩存储方法的流程图。
图4是根据另一示例性实施例示出的一种日志信息压缩存储方法的流程图。
图5是根据另一示例性实施例示出的一种日志信息压缩存储方法的流程图。
图6是根据一示例性实施例示出的一种日志信息压缩存储装置的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
图8是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
图1是根据一示例性实施例示出的一种日志信息压缩存储方法、装置、电子设备及计算机可读介质的系统框图。
如图1所示,系统架构10可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
终端设备101、102、103可例如对日志信息进行预处理;终端设备101、102、103可例如基于所述日志信息在模板库中确定目标模板;终端设备101、102、103可例如将所述目标模板的标识写入预处理后的所述日志信息中;终端设备101、102、103可例如以字段为单位提取预处理后的所述日志信息中的日志数据;终端设备101、102、103可例如将所述日志数据按照所述目标模板的格式进行压缩并在本地存储,和/或将压缩后的数据发送到服务器105存储。
服务器105可以是提供各种服务的服务器,例如终端设备101、102、103所产生的日志数据进行存储的数据服务器。数据服务器可以对接收到的日志信息数据进行压缩然后再进行存储。
服务器105可例如对终端设备101、102、103上的日志信息进行预处理;服务器105可例如基于所述日志信息在模板库中确定目标模板;服务器105可例如将所述目标模板的标识写入预处理后的所述日志信息中;服务器105可例如以字段为单位提取预处理后的所述日志信息中的日志数据;服务器105可例如将所述日志数据按照所述目标模板的格式进行压缩存储。
服务器105可以是一个实体的服务器,还可例如为多个服务器组成,需要说明的是,本公开实施例所提供的日志信息压缩存储方法可以由服务器105和/或终端设备101、102、103执行,相应地,日志信息压缩存储装置可以设置于服务器105和/或终端设备101、102、103中。
图2是根据一示例性实施例示出的一种日志信息压缩存储方法的流程图。日志信息压缩存储方法20至少包括步骤S202至S210。
如图2所示,在S202中,对日志信息进行预处理。包括:确定所述日志信息的数据格式;基于所述数据格式对所述日志信息进行解析。
在S204中,基于所述日志信息在模板库中确定目标模板。在模板库中存储多个模板,每个模板和日志信息相关联,不同的日志信息对应不同的模板,可根据日志信息的类型或者内容确定其对应的目标模板,还可根据用户的初始设置确定目标模板。
在S206中,将所述目标模板的标识写入预处理后的所述日志信息中。为了后续解压缩时选择正确的解压缩方式,将模板的标识写入日志信息中。这种,将模板标识作为指针存储的方式,对于压缩后的日志数据,根据模板指针确定模板的定义格式,然后通过执行基于模板的逆去重操作即可恢复原始的日志数据。
在S208中,以字段为单位提取预处理后的所述日志信息中的日志数据。不同的日志包括不同的字段,可例如,某系统日志服务功能详细记录网站域名的访问、攻防日志。日志中包含数十个字段,可以日志信息的具体类型确定其对应的具体字段数量和字段位置,以根据不同需要逐一读取日志字段进行后续处理。
在S210中,将所述日志数据按照所述目标模板的格式进行压缩存储。包括:按照所述目标模板的格式以字段为单位依次提取所述日志数据中的字段名、字段值;基于所述字段名和所述字段值生成压缩字段;基于多个压缩字段生成压缩日志信息;基于所述多个压缩日志信息生成所述压缩日志。
根据本公开的日志信息压缩存储方法,对日志信息进行预处理;基于所述日志信息在模板库中确定目标模板;将所述目标模板的标识写入预处理后的所述日志信息中;以字段为单位提取预处理后的所述日志信息中的日志数据;将所述日志数据按照所述目标模板的格式进行压缩存储的方式,能够降低了日志数据的所占用的存储空间、提高日志数据存储空间效率和时间效率。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种日志信息压缩存储方法的流程图。图3所示的流程30是对图2所示的流程的补充描述。
如图3所示,在S302中,对多个日志数据进行分析。
在一个实施例中,日志数据格式可以是使用的syslog日志格式。当然,还可以是其他格式的日志文件,本申请以syslog格式的日志文件进行分析说明,本申请的方式还可应用在其他格式的日志文件中,对syslog格式的日志文件的日志文件分析生成了适合于syslog格式的日志文件的模板。通过对其他格式的日志文件的分析,也可生成适合于其他日志格式的模板。本申请在此不再赘述。
syslog格式的日志文件规定一条日志消息由“优先级”、“头部”与“消息体”,3部分构成,其中优先级是一个数字,它代表了生成日志的程序模块(facility)与严重性(severity);头部包含时间与主机名;消息体是具体的日志内容。由于syslog日志规范只是一个建议,规范宽泛,其消息体包含了大量的日志属性,但这些内容的组织格式并没有确定的定义,由系统设计者自行定义。所以,很多日志系统是将其作为一种支持的格式,更多的是对它进行扩展。
1)日志格式规整相似。目前成熟产品的日志数据格式类似于syslog RFC3164规范的格式,或者更加规范的日志格式;
2)日志数据存在冗余结构模式,同一类日志数据无论以哪种格式表示,在消息结构上都存在大量的相同模式;
3)日志数据中的属性值类型是固定的,且具有很强的时间局部性相似性。即对于同一类日志数据,即使在数据组织格式上有差异,但所承载的核心信息是相同的。如时间、MAC地址、生成日志的设备名、等信息;在一个具体的日志系统中这些属性值的类型是确定的,且在短时间内,这些属性值是局部相似的,如时间属性值只是秒数的差异、少数IP地址在五元组中频繁重复出现等。
在S304中,基于日志消息标识、预设字段排序、字段连接符、字段间连接符号、日志数据连接符生成多个模板。
根据对syslog格式的日志文件的分析可设置针对syslog格式的日志文件的模板,该模板能够消除日志数据中存在的冗余结构模式,形式化定义如下:
定义1:(字段,field),字段是由字段名(fld)与字段值(val)构成的键值对(fldλval),其中“λ”为字段名与字段值之间的连接符。一个字段表示一个具体的日志属性,如访问控制日志中的源IP地址字段为“src=x.x.x.x”,其中src为字段名(源IP),“x.x.x.x”为字段值(IP地址),字段名与字段值连接符为等号。
定义2:(日志消息,log_msg),一条日志消息表示一个事件,它是由有限个字段构成,字段之间有先后顺序、由字段分隔符(θ)相连接;即log_msg=field 1θfield 2θ…field N,其中,field i=fldiλvali。
定义3:(日志,log),日志是由多条日志消息构成的集合,log={log_msgi|i∈1,2,3,…,M;log_msgi=field 1iθfield 2iθ…field N i;field j i=fld j iλval j i,j∈1,2,…,N}。
由前一节的分析可知,已有的日志格式与本文形式化定义的日志格式很相似,因此只需对待压缩的日志数据进行简单预处理,将日志数据转换为规整的日志格式(log)。日志数据所有的字符都是可打印字符,不含控制类字符,因此可以选择控制类字符作为λ与θ。对于同一类日志数据,可以通过正则表达式匹配加文本处理脚本完成日志预处理。
在S306中,将所述多个模板存储在所述模板库中。同一设备或系统的日志存在冗余的结构模式:日志消息的字段组成结构是固定的,且各个字段名是相同的,即log_msg 1与log_msg 2都包含相同的内容:fld 1λ,θfld 2λ,…θfldN;不同的部分是:val 1,val2,…,valN。
定义4:(模板,template)。一个模板由字段名与字段值连接符、字段分割符、各个字段名以及该模板的ID号(tid)构成,即template={tid,λ,θ,fld 1,fld 2,…,fld N}。
因此,在后续调用模板使用时,将日志中冗余的结构模式以字段为单位提取为模板,然后将模板定义的冗余模式从日志消息中删除,并在日志消息中存储模板指针。
图4是根据另一示例性实施例示出的一种日志信息压缩存储方法的流程图。图4所示的流程40是对图2所示的流程中S210“将所述日志数据按照所述目标模板的格式进行压缩存储”的详细描述。
如图4所示,在S402中,按照所述目标模板的格式以字段为单位依次提取所述日志数据中的字段名、字段值。
在S404中,基于所述字段名和所述字段值生成压缩字段。包括:将所述字段名和所述字段值用字段连接符进行连接以生成所述压缩字段。
在S406中,基于多个压缩字段生成压缩日志信息。包括:将所述多个压缩字段用字段间连接符号进行连接以生成所述压缩日志信息。
在S408中,基于所述多个压缩日志信息生成所述压缩日志。包括:将所述多个压缩日志信息用日志数据连接符进行连接以生成所述压缩日志。对每一条日志消息log_msgi进行如下操作:模板库中查找与log_msgi相匹配的模板(template k);将template k定义的字段名从log_msgi中删除,并将template k的模板ID写入日志消息中,最后得到基于模板变换后log_msgi为“tid kθval 1iθval 2iθ…θval N i”。
图5是根据另一示例性实施例示出的一种日志信息压缩存储方法的流程图。图5所示的流程50是对图4所示的流程中S404“将所述字段名和所述字段值用字段连接符进行连接以生成所述压缩字段”的详细描述。
基于模板的日志数据去重后降低了日志的存储空间,但仍存在大量的信息冗余,尤其是短时间内的同类日志消息字段之间存在局部相似性。为了进一步压缩日志数据空间,图5所示的流程可基于日志差分架构对基于模板去重后的日志数据做进一步的细粒度的差分压缩。
可定义几类通用的差分压缩策略(diff_strgy);然后,根据不同的字段值特性,选择各个字段值最适合的差分策略对基于模板去重后的日志数据进行字段级别的差分压缩。为了支持日志消息的线速压缩,日志差分压缩只选择与前一条同类型的历史日志消息进行差分计算;由于日志消息具有时间域的局部相似性,所以该差分压缩策略保证了日志压缩的时间与空间效率。
如图5所示,在S502中,按照所述目标模板的格式以字段为单位依次提取所述日志数据。
在S504中,根据当前字段确定目标差分压缩策略。
在S506中,基于所述目标差分压缩策略对所述当前字段对应的日志数据进行压缩,生成压缩之后的字段值。
其中,基于所述目标差分压缩策略对所述当前字段对应的日志数据进行压缩包括:基于所述目标差分压缩策略对所述当前字段对应的日志数据;将所述当前字段对应的日志数据和上一字段对应的日志数据进行差分计算;用字段差分位图存储当前字段和上一字段之间的差分策略。存储差分计算的结果。
每个字段的细粒度差分压缩(FFDE,fine-grained field differentialencoding)可以定义为为一个五元组数据:ffde=(fld,fld_type,diff_strgy,initVal,size),五元组中各个属性的定义如下:
fld:字段名。
fld_type:字段值类型,分为字符串、整数2大类,其中整数分为8位,16位,32位,64位的有符号与无符号整数;浮点数转化为指数与尾数的2个整数表示。
diff_strgy:字段值差分策略,在一个实施例汇总,本申请的日志压缩系统定义了4类差分策略,对于不同特性的字段采用不同差分策略,也可扩展新差分策略以支持新类型字段。
initVal:字段的初始值。当第一条消息差分压缩时,将initVal作为历史值(val')与当前字段值做差分运算。当字段差分策略为“定值”时,则initVal属性值定义为该字段的定值。
size:标识使用差分策略得到的字段差值使用定长编码。
更进一步的,差分策略导致字段的值具有3种“值存在”状态:存在、不存在、条件存在。“存在”表示字段差分之后总是有值,如“差值”字段差分策略;“不存在”表示字段差分后总是没有值,如“定值”差分策略;“条件存在”表示字段差分后依据条件可能有值也可能无值。
如字段差分策略为“复制”,当与前一条日志消息的值相同时,当前日志直接删除该值,差分后的字段无值;反之则保留该值,差分后的字段有值。因此一条差分后的日志消息所包含的字段值数目不固定。为了正确解码日志消息,一条差分压缩的日志消息需要存储一个字段值存在位图向量(FVPB,field value presence bitmap),FVPB中的每一个比特对应日志中的一个具有“条件存在”状态的字段,置位表示字段值存在;复位表示字段值不存在。对于“存在”与“不存在”的字段值则不需要FVPB标示。
在S508中,将压缩之后的字段名和所述字段值用字段连接符进行连接以生成所述压缩字段。
基于模板的日志数据细粒度差分压缩总体处理流程可如下:
日志先通过如图4所述的通过模板去重处理,然后再对每一个日志字段值进行细粒度的差分压缩。差分压缩可通过细粒度差分模板实现,细粒度差分模板可设置在上文的模板中,
细粒度差分模板可由字段值存在位图向量、各个字段的细粒度差分五元组、模板ID号、字段名与字段值连接符与字段分割符构成,即template'={ffdetid,λ,θ,ffde 1,ffed 2,…,ffed N}。其中模板ID号也作为日志消息添加的一个普通字段(ffdetid),使用“复制”差分策略(可减少连续同类型日志消除中模板ID的存储)。
基于细粒度差分模板的日志差分压缩算法如下:
字段差分压缩是当前值(val)与同类型的前一条日志数据的对应字段值(val')执行差分压缩,因此整个日志的差分压缩过程需要维护一个差分字典,用于记录前一条同类型日志数据的字段值。算法1第1行为每个模板定义一个差分字典(dict[k][0…N]),其初始值为对应模板的字段初始值(initVal);每执行完一条日志消息的差分运算,用当前日志的字段值更新该差分字典(算法1第6行)。对于每一条日志消息,首先需要确定适合其的模板,然后根据模板对该日志消息进行细粒度差分压缩。
可例如,输入数据:日志log={log_msgi|i=1,2,…,M};差分压缩模板集合temp_set={template'k|k=1,2,…,K};其中template'k={ffdetidk,λ,θ,ffde 1k,…,ffed Nk},ffed j k=(fld j k,fld_type j k,diff_strgy j k,initVal j k,size j k),j=1,2,…,N};
输出的差分压缩的日志数据的步骤如下;
1)初始化模板字段差分字典dict[k][0…N]={k,initVal 1k,…,initVal N k};
2)对于每个日志消息log_msgi,执行如下操作:
根据日志消息的结构查找与其相对应的模板template'k;
对模板ID号(k)与log_msgi的每个字段值val j i执行如下操作;
依据diff_strgy j k的对val j i与dict[k][j]进行差分运算;如果当字段差分编码状态为“条件存在”且差分后有值,则FVPB[j']=1;否则FVPB[j']=0;/*j'为当前字段在字段值存储位图中的比特位*/;
更新字段前值字典dict[k][j]=val j;
输出FVPB与各个字段差分后的值。
本公开的日志信息压缩存储方法,首先充分利用日志数据,将一类日志数据中固定不变的数据块提取为模板,日志压缩时,删除模板中定义的数据块,只存储一个模板指针。在解压时,根据模板内容即可复原日志数据;在具体进行压缩时,还能够针对日志数据中不同类型的数据块定制其差分压缩策略,提高日志数据存储空间效率。
本公开的日志信息压缩存储方法,基于模板流式差分的日志压缩系统首先消除日志数据中冗余的结构模式。其次,利用日志数据在时间域上的局部相似性,通过配置适用于日志内容属性(字段)的差分策略执行差分压缩,进一步降低了日志数据的存储空间。而且,还能够针对对于不同类型的日志数据可以配置不同的细粒度差分压缩策略,提高网络系统日志数据压缩率。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图6是根据另一示例性实施例示出的一种日志信息压缩存储装置的框图。如图6所示,日志信息压缩存储装置70包括:预处理模块602,模板模块604,写入模块606,提取模块608,压缩模块610。
预处理模块602用于对日志信息进行预处理;
模板模块604用于基于所述日志信息在模板库中确定目标模板;
写入模块606用于将所述目标模板的标识写入预处理后的所述日志信息中;
提取模块608用于以字段为单位提取预处理后的所述日志信息中的日志数据;
压缩模块610用于将所述日志数据按照所述目标模板的格式进行压缩存储。
根据本公开的日志信息压缩存储装置,对日志信息进行预处理;基于所述日志信息在模板库中确定目标模板;将所述目标模板的标识写入预处理后的所述日志信息中;以字段为单位提取预处理后的所述日志信息中的日志数据;将所述日志数据按照所述目标模板的格式进行压缩存储的方式,能够降低了日志数据的所占用的存储空间、提高日志数据存储空间效率和时间效率。
图7是根据一示例性实施例示出的一种电子设备的框图。
下面参照图7来描述根据本公开的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图2,图3,图4,图5中所示的步骤。
所述存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
所述存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备700’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备700交互的设备通信,和/或该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:对日志信息进行预处理;基于所述日志信息在模板库中确定目标模板;将所述目标模板的标识写入预处理后的所述日志信息中;以字段为单位提取预处理后的所述日志信息中的日志数据;将所述日志数据按照所述目标模板的格式进行压缩存储。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (11)
1.一种日志信息压缩存储方法,其特征在于,
对日志信息进行预处理;
基于所述日志信息在模板库中确定目标模板;
将所述目标模板的标识写入预处理后的所述日志信息中;
以字段为单位提取预处理后的所述日志信息中的日志数据;
将所述日志数据按照所述目标模板的格式进行压缩存储。
2.如权利要求1所述的方法,其特征在于,还包括:
基于日志消息标识、预设字段排序、字段连接符、字段间连接符号、日志数据连接符生成多个模板;
将所述多个模板存储在所述模板库中。
3.如权利要求1所述的方法,其特征在于,对日志信息进行预处理,包括:
确定所述日志信息的数据格式;
基于所述数据格式对所述日志信息进行解析。
4.如权利要求1所述的方法,其特征在于,将所述日志数据按照所述目标模板的格式进行压缩存储,包括:
按照所述目标模板的格式以字段为单位依次提取所述日志数据中的字段名、字段值;
基于所述字段名和所述字段值生成压缩字段;
基于多个压缩字段生成压缩日志信息;
基于所述多个压缩日志信息生成所述压缩日志。
5.如权利要求4所述的方法,其特征在于,基于所述字段名和所述字段值生成压缩字段,包括:
将所述字段名和所述字段值用字段连接符进行连接以生成所述压缩字段。
6.如权利要求4所述的方法,其特征在于,基于多个压缩字段生成压缩日志信息,包括:
将所述多个压缩字段用字段间连接符号进行连接以生成所述压缩日志信息。
7.如权利要求4所述的方法,其特征在于,基于所述多个压缩日志信息生成所述压缩日志,包括:
将所述多个压缩日志信息用日志数据连接符进行连接以生成所述压缩日志。
8.如权利要求5所述的方法,其特征在于,将所述字段名和所述字段值用字段连接符进行连接以生成所述压缩字段,还包括:
按照所述目标模板的格式以字段为单位依次提取所述日志数据;
根据当前字段确定目标差分压缩策略;
基于所述目标差分压缩策略对所述当前字段对应的日志数据进行压缩,生成压缩之后的字段值;
将压缩之后的字段名和所述字段值用字段连接符进行连接以生成所述压缩字段。
9.如权利要求8所述的方法,其特征在于,基于所述目标差分压缩策略对所述当前字段对应的日志数据进行压缩,包括:
基于所述目标差分压缩策略对所述当前字段对应的日志数据;
将所述当前字段对应的日志数据和上一字段对应的日志数据进行差分计算;
存储差分计算的结果。
10.如权利要求8所述的方法,其特征在于,存储差分计算的结果之前,还包括:
用字段差分位图存储当前字段和上一字段之间的差分策略。
11.一种日志信息压缩存储装置,其特征在于,包括:
预处理模块,用于对日志信息进行预处理;
模板模块,用于基于所述日志信息在模板库中确定目标模板;
写入模块,用于将所述目标模板的标识写入预处理后的所述日志信息中;
提取模块,用于以字段为单位提取预处理后的所述日志信息中的日志数据;
压缩模块,用于将所述日志数据按照所述目标模板的格式进行压缩存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110585503.XA CN113268453A (zh) | 2021-05-27 | 2021-05-27 | 日志信息压缩存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110585503.XA CN113268453A (zh) | 2021-05-27 | 2021-05-27 | 日志信息压缩存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113268453A true CN113268453A (zh) | 2021-08-17 |
Family
ID=77233210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110585503.XA Withdrawn CN113268453A (zh) | 2021-05-27 | 2021-05-27 | 日志信息压缩存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268453A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886193A (zh) * | 2021-10-26 | 2022-01-04 | Oppo广东移动通信有限公司 | 日志数据处理方法、装置、电子设备及存储介质 |
CN115001148A (zh) * | 2022-08-03 | 2022-09-02 | 杭州轻舟科技有限公司 | 一种储能电站数据全量高频实时采集方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020129168A1 (en) * | 2001-03-12 | 2002-09-12 | Kabushiki Kaisha Toshiba | Data transfer scheme using caching and differential compression techniques for reducing network load |
CN110895548A (zh) * | 2018-08-24 | 2020-03-20 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和装置 |
-
2021
- 2021-05-27 CN CN202110585503.XA patent/CN113268453A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020129168A1 (en) * | 2001-03-12 | 2002-09-12 | Kabushiki Kaisha Toshiba | Data transfer scheme using caching and differential compression techniques for reducing network load |
CN110895548A (zh) * | 2018-08-24 | 2020-03-20 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和装置 |
Non-Patent Citations (1)
Title |
---|
唐球: ""基于差分压缩的大规模日志压缩系统"", 《通信学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886193A (zh) * | 2021-10-26 | 2022-01-04 | Oppo广东移动通信有限公司 | 日志数据处理方法、装置、电子设备及存储介质 |
CN115001148A (zh) * | 2022-08-03 | 2022-09-02 | 杭州轻舟科技有限公司 | 一种储能电站数据全量高频实时采集方法及系统 |
CN115001148B (zh) * | 2022-08-03 | 2022-11-22 | 杭州轻舟科技有限公司 | 一种储能电站数据全量高频实时采集方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119643B (zh) | 二维码生成方法及装置、二维码识别方法及装置 | |
US9355250B2 (en) | Method and system for rapidly scanning files | |
CN107203574B (zh) | 数据管理和数据分析的聚合 | |
CN113268453A (zh) | 日志信息压缩存储方法及装置 | |
CN112199344B (zh) | 一种日志分类的方法和装置 | |
CN110704608A (zh) | 文本主题生成方法、装置和计算机设备 | |
CN112084448B (zh) | 相似信息处理方法以及装置 | |
CN110753050A (zh) | 协议文档的生成方法及装置、计算机存储介质、电子设备 | |
CN111198967A (zh) | 基于关系图谱的用户分组方法、装置及电子设备 | |
CN108846098B (zh) | 一种信息流摘要生成及展示方法 | |
US8930808B2 (en) | Processing rich text data for storing as legacy data records in a data storage system | |
CN112436943B (zh) | 基于大数据的请求去重方法、装置、设备及存储介质 | |
CN113760894A (zh) | 数据调取方法、装置、电子设备及存储介质 | |
CN110505289B (zh) | 文件下载方法及装置、计算机可读介质、无线通信设备 | |
CN109684207B (zh) | 操作序列封装的方法、装置、电子设备及存储介质 | |
CN112347383A (zh) | 分享链接生成方法、装置及电子设备 | |
CN111368693A (zh) | 一种身份证信息的识别方法和装置 | |
CN112800006B (zh) | 用于网络设备的日志存储方法及装置 | |
CN111104259A (zh) | 一种数据库恢复方法、装置及存储介质 | |
CN114143074A (zh) | webshell攻击识别装置及方法 | |
CN114065727A (zh) | 资讯去重方法、设备及计算机可读介质 | |
CN115080154A (zh) | 页面显示方法、装置、存储介质及电子设备 | |
CN113221035A (zh) | 用于确定异常网页的方法、装置、设备、介质和程序产品 | |
CN111988405A (zh) | 负载均衡装置的报文重写方法及负载均衡装置 | |
CN113239687A (zh) | 一种数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210817 |
|
WW01 | Invention patent application withdrawn after publication |