一种日志数据存储、提取方法及装置与流程

文档序号:17080140发布日期:2019-03-09 00:09阅读:218来源:国知局
一种日志数据存储、提取方法及装置与流程
本发明涉及数据处理
技术领域
,尤其涉及一种日志存储、提取方法及装置。
背景技术
:随着企事业单位内部应用系统的建设,以及移动互联网、物联网等技术在企业中的推进使用,企事业所产生的数据类型和数据量越来越多,事实上企事业内部所产生的数据绝大部分是日志数据,如服务器日志、网络设备日志、终端计算机日志数据等,日志数据是实现企业内部应用系统运维监控、安全审计、行为分析、数据价值挖掘的重要数据源,目前已经有成熟的etl(extract-transform-load)技术和工具实现企业内部日志数据的采集、搜索、分析及可视化,如elastic公司提供的elasticsearch、logstashkibana等工具,极大丰富了企业数据入库存储手段及展示的效果。通常情况下,企事业内部所产生的日志数据大多是重复的,如网络交换机设备所产生的日志数据,其格式基本一致,不同的是日志产生时间和日志操作内容,若面对企事业内部网络庞大、网络流量较多、网络设备日志量较大的情况,这种多数字段重复的日志不仅在收集时浪费服务器性能,在存储时消耗存储资源,更在计算或展示时会降低处理速度。其他日志如终端计算机操作日志、服务器日志、应用系统审计日志等,都存在一定量的重复数据。因此,对实时采集的日志数据流进行去重处理,是企事业单位能否有效利用其自身数据的重要前提。因此,本发明提供一种日志存储、提取方法及装置,提出一种对大量重复字段日志数据在入库前的优化方法,减轻日志数据的冗余度,并使用不同数据库分开读写数据,既降低了日志数据存储成本,又提高了日志数据分析计算效率。技术实现要素:本发明的目的在于提供一种日志存储、提取方法及装置,通过日志数据存储入库前的去重处理以及不同数据库分开存储,一方面减轻日志数据的冗余度,降低存储成本,另一方面提高日志数据提取分析的效率。首先,本发明提供了一种日志数据存储方法,包括以下步骤:获取待存储的日志数据,根据预设的日志识别字段和日志详情字段提取所述日志数据的日志识别字段值和日志详情字段值;计算所述日志识别字段值的md5值,作为所述日志数据的唯一标识;查询第一数据库中是否存在所述md5值,若存在,则更新所述第一数据库中所述md5值的重复次数,并将所述日志详情字段值存入至第二数据库;反之,若不存在,则在第一数据库中新增所述md5值以及所述日志识别字段值,并在第二数据库中新增所述md5值以及所述日志详情字段值。进一步地,在获取待存储的日志数据之前,还包括配置日志识别字段和日志详情字段,所述日志识别字段是指能够区分日志数据的字段,包括设备id、设备ip地址、设备mac地址、设备所属机构、访问url地址以及访问目标ip地址;所述日志详情字段指的是需要展示日志详情的字段,包括访问类别、事件内容以及日志记录时间。进一步地,若日志数据中存在多次重复的一类数据值,则可对此类数据值归类为某一个字段,此时可将所述字段配置为日志识别字段。其次,本发明还提供了一种日志数据提取方法,包括以下步骤:获取日志数据的提取请求,得到所述提取请求的日志识别字段值或/和日志详情字段值;根据所述日志识别字段值或/和日志详情字段值,从第一数据库或/和第二数据库中提取所述日志的所有日志识别字段值或/和日志详情字段值。进一步地,根据所述请求数据中字段值的类别,具体包括以下三种情况:1)若所述提取请求中仅包含日志识别字段,则只需根据所述日志识别字段的值从第一数据库中提取其他的日志识别字段值;2)若所述提取请求中既包含日志识别字段也包含日志详情字段,则先根据所述日志识别字段的值从第一数据库中获得md5值和所有的日志识别字段值,再根据所述md5值从第二数据库中提取相应的日志详情字段值,将所述获得的字段值进行合并,重新得到原始日志数据;3)若所述提取请求中仅包含日志详情字段,则根据所述日志详情字段的值从第二数据库中获得md5值和所有的日志详情字段值,再根据所述md5值从第一数据库中提取相应的日志识别字段值,将所述获得的字段值进行合并,重新得到原始日志数据。相应地,本发明提供了一种日志数据存储装置,所述装置包括:获取模块,用于获取待存储的日志数据,提取所述日志数据的日志识别字段值和日志详情字段值;计算模块,用于计算所述日志识别字段值的md5值;查询模块,用于查询第一数据库中是否存在所述md5值;存储模块,用于存储所述md5值、所述日志识别字段值以及所述日志详情字段值。进一步地,所述装置还包括配置模块,用于配置日志识别字段和日志详情字段,分别存储在第一数据库和第二数据库中。进一步地,所述配置模块,还包括当日志数据中存在多次重复的一类数据值,则可对此类数据值归类为某一个字段,此时所述配置模块还可将所述字段配置为日志识别字段。相应地,本发明也提供了一种日志数据提取的装置,所述装置包括:获取模块,用于获取日志数据的提取请求,得到所述提取请求中的日志识别字段值或/和日志详情字段值;提取模块,用于根据所述日志识别字段值或/和日志详情字段值从第一数据库或/和第二数据库中提取所述日志的所有日志识别字段值或/和日志详情字段值。进一步地,根据所述请求数据中字段值的类别,所述提取模块还具体包括以下三种情况:1)若所述提起请求中仅只包含日志识别字段,则只需根据所述日志识别字段的值从第一数据库中提取其他的日志识别字段值;2)若所述提取请求中既包含日志识别字段也包含日志详情字段,则先根据所述日志识别字段的值从第一数据库中获得md5值和所有的日志识别字段值,再根据所述md5值从第二数据库中提取相应的日志详情字段值,将所述获得的字段值进行合并,重新得到原始日志数据;3)若所述提取请求中仅包含日志详情字段,则根据所述日志详情字段的值从第二数据库中获得md5值和所有的日志详情字段值,再根据所述md5值从第一数据库中提取相应的日志识别字段值,将所述获得的字段值进行合并,重新得到原始日志数据。通过日志数据存储入库前的去重处理以及不同数据库分开存储,一方面减轻日志数据的冗余度,降低存储成本,另一方面提高日志数据提取分析的效率;再者,根据提取请求中是否含有日志详情字段,判断是否需要生成、返回原始日志数据,有效的提高日志数据提取效率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种日志数据存储的方法流程图;图2为本发明实施例提供的一种日志数据提取的方法流程图;图3为本发明实施例提供的一种日志数据存储的装置结构示意图;图4为本发明实施例提供的一种日志数据提取的装置结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,需要指出的是,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。图1为本发明实施例提供的一种日志数据存储的方法流程图,如图1所述,所述方法包括以下步骤:步骤s101,获取待存储的日志数据,根据预设的日志识别字段和日志详情字段提取所述日志数据的日志识别字段值和日志详情字段值;步骤s102,计算所述日志识别字段值的md5值,作为所述日志数据的唯一标识;步骤s103,查询第一数据库中是否存在所述md5值;若存在,则进入步骤s104;反之,若所述第一数据库中不存在所述md5值,则进入步骤s105;步骤s104,更新所述第一数据库中所述md5值的重复次数,并将所述日志详情字段值存入至第二数据库;步骤s105,在第一数据库中新增所述md5值以及所述日志识别字段值,并在第二数据库中新增所述md5值以及所述日志详情字段值。在上述方法之前,包括配置日志识别字段和日志详情字段,所述日志识别字段是指能够区分日志数据的字段,包括设备id、设备ip地址、设备mac地址、设备所属机构、访问url地址以及访问目标ip地址;所述日志详情字段指的是需要展示日志详情的字段,包括访问类别、事件内容以及日志记录时间。如下表1和表2所示,分别为配置的日志识别字段和日志识别字段以及其字段值表,分别存储在第一数据库和第二数据库中。所述日志识别字段与所述日志识别字段通过md5值进行关联。表1日志识别字段及其字段值表md5值重复次数设备id设备ip地址……10012desktop_v5erihox1.x2.x3.x4……10021desktop_v6erihox1.x2.x3.x4……表2日志详情字段及其字段值表md5值访问类别日志记录时间……1001a201809041001b201809031002a20180903在上述步骤s104中,若所述第二数据库中已存在所述日志详情字段值,则在所述第二数据库中新增一条所述日志详情字段值。对于日志数据中存在多次重复的一类数据值,则可对此类数据值归类为某一个字段,此时可将所述字段配置为所述日志识别字段,如访问人信息、终端设备配置信息、服务器设备配置信息等,尽管这些字段对识别一条日志无关键性作用,但同样存在大量重复,因此可将其归为日志识别字段中以便于减少重复入库量。在上述步骤s105中,新增所述md5值,此时所述md5值对应的重复次数为1。如果下次需要存储的日志数据,其日志数据识别字段值计算得到其md5值为1001,则说明在第一数据库中已经存在该条数据的日志识别字段值,此时只需要将上述日志数据的md5值以及日志详情字段值根据预设的日志详情字段加入第二数据库中,此时md5值为1001的重复次数将变为3。图2为本发明实施例提供的一种日志数据提取的方法流程图,如图2所述,所述方法包括以下步骤:步骤s201,获取日志数据的提取请求,得到所述提取请求的日志识别字段值或/和日志详情字段值;步骤s202,所述提取请求中是否包含日志详情字段;若不包含日志详情字段,即所述提取请求中仅包含日志识别字段,则进入步骤s203;反之,若所述提取请求中包含日志详情字段,则进入步骤s204;步骤s203,只需根据日志识别字段的值从第一数据库中提取其他的日志识别字段值;步骤s204,所述提取请求中是否包含日志识别字段;若所述请求数据中包含日志识别字段,即所述提取请求中既包含日志识别字段也包含日志详情字段,则进入步骤s205;反之,若所述提取请求中不包含日志识别字段,即所述提取请求中仅包含日志详情字段,则进入步骤s206;步骤s205,先根据所述日志识别字段的值从第一数据库中获得md5值和所有的日志识别字段值,再根据所述md5值从第二数据库中提取相应的日志详情字段值,将所述获得的字段值进行合并,重新得到原始日志数据;步骤s206,根据所述日志详情字段的值从第二数据库中获得md5值和所有的日志详情字段值,再根据所述md5值从第一数据库中提取相应的日志识别字段值,将所述获得的字段值进行合并,重新得到原始日志数据。图3为本发明实施例提供的一种日志数据存储的装置结构示意图,如图所示,所述装置包括四个模块:获取模块11,用于获取待存储的日志数据,提取所述日志数据的日志识别字段值和日志详情字段值;计算模块12,用于计算所述日志识别字段值的md5值;查询模块13,用于查询第一数据库中是否存在所述md5值;存储模块14,用于存储所述md5值、所述日志识别字段值以及所述日志详情字段值。所述装置还包括配置模块,用于配置日志识别字段和日志详情字段,分别存储在第一数据库和第二数据库中;所述配置模块还包括当日志数据中存在多次重复的一类数据值时,则可对此类数据值归类为某一个字段,此时所述配置模块还可将所述字段配置为日志识别字段。图4为本发明实施例提供的一种日志数据提取的装置结构示意图,如图所示,所述装置包括:获取模块11,用于获取日志数据的提取请求,得到所述提取请求中的日志识别字段值或/和日志详情字段值;提取模块15,用于根据所述日志识别字段值或/和日志详情字段值从第一数据库或/和第二数据库中提取所述日志的所有日志识别字段值或/和日志详情字段值。根据所述请求数据中字段值的类别,所述提取模块还具体包括以下三种情况:1)若所述请求数据中仅包含日志识别字段,则只需根据所述日志识别字段的值从第一数据库中提取其他的日志识别字段值;2)若所述请求数据中既包含日志识别字段也包含日志详情字段,则先根据所述日志识别字段的值从第一数据库中获得md5值和所有的日志识别字段值,再根据所述md5值从第二数据库中提取相应的日志详情字段值,将所述获得的字段值进行合并,重新得到原始日志数据;3)若所述请求数据中仅包含日志详情字段,则根据所述日志详情字段的值从第二数据库中获得md5值和所有的日志详情字段值,再根据所述md5值从第一数据库中提取相应的日志识别字段值,将所述获得的字段值进行合并,重新得到原始日志数据。综上所述,通过本发明提供的方法及装置,通过对日志降冗余处理实现数据存储的优化,解决日志处理时的日志字段重复入库问题,降低日志数据的存储资源利用率,并利用不同数据库分开读写数据以提高日志分析效率。以上所述,为本发明较佳的实施例,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所披露的技术范围内,可轻易想到的修改、等同替换、改进等,均应涵盖在本发明保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1