一种日志数据自定义解析方法技术

技术编号:35821591 阅读:14 留言:0更新日期:2022-12-03 13:47
本发明专利技术提供了一种日志数据自定义解析方法,包括:获取原始日志;将原始日志通过logstash方式或者Agent采集方式将数据过滤之后,并转发给kafka端;获取redis缓存中的数据,将生成的日志利用XML配置文件直接映射成需要转化的map集合数据;将map集合的数据入库openTsdb时序性数据库,实现数据的实时转化和自定义配置。本发明专利技术在接入大批量的原始日志,可以通过分析日志的生成数据,自定义解析规则,通过上传解析规则,可以及时的获取情报数据,从而降低开发成本以及时间的消耗。从而降低开发成本以及时间的消耗。从而降低开发成本以及时间的消耗。

【技术实现步骤摘要】
一种日志数据自定义解析方法


[0001]本专利技术涉及数据处理领域,尤其涉及一种日志数据自定义解析方法。

技术介绍

[0002]目前,大数据量日志处理方面的技术竞争越发复杂和激烈,越来越多的安全监控设备和技术的出现为网络安全提供安全保障,来自各种设备的网络日志数据采用不同格式和属性来记录网络行为各个方面。也因此程序处理的日志数据也逐渐增大,对程序的处理性能要求也越来越高,而匹配地址作为网络日志分析的一环,因为需要跟地址库数据做匹配,通常是日志中的ip地址跟百万级的数据做碰撞来获取国家地址、编码、经度纬度等信息,现有的日志解析系统通常会把地址库数据保存在pg mysql等传统数据库中,在通过查询匹配地址数据,但这样的方法再小量级的日志数据环境下才能考虑,在处理日志数据量大时会消耗过长的时间来处理数据,同时对数据库资源产生较大的压力。这种时候优化地址匹配代码的速度就能大幅提升日志分析系统的性能。

技术实现思路

[0003]有鉴于此,针对现有的匹配ip地址的算法,应用在大数据领域的spark任务的大数据量级ip地址匹配逻辑还不算完善,对内存和cpu要求较高的技术问题,本专利技术提出一种日志数据自定义解析方法。
[0004]一种日志数据自定义解析方法,其包括以下步骤:
[0005]S1、获取原始日志;
[0006]S2、将原始日志通过logstash方式或者Agent采集方式将数据过滤之后,并转发给kafka端;
[0007]S3、获取redis缓存中的数据,将生成的日志利用XML配置文件直接映射成需要转化的map集合数据;
[0008]S4、将map集合的数据入库openTsdb时序性数据库,实现数据的实时转化和自定义配置。
[0009]本专利技术提供的有益效果是:在接入大批量的原始日志,可以通过分析日志的生成数据,自定义解析规则,通过上传解析规则,可以及时的获取情报数据,从而降低开发成本以及时间的消耗。
附图说明
[0010]图1是本专利技术一种日志数据自定义解析方法的流程图。
具体实施方式
[0011]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地描述。
[0012]请参考图1,一种日志数据自定义解析方法,包括以下:
[0013]S1、获取原始日志;
[0014]需要说明的是,日志是一种半结构化数据,由特定的代码生成。
[0015]比如日志消息:
[0016]2015

10

18 18:05:29,570INFO dfs.DataNode$PacketResponder:Received block blk_

562725280853087685of size 67108864from/10.251.91.84,由代码LOG.info("Received block"+block+"of size"+block.getNumBytes()+"from"+inAddr)生成。
[0017]以上日志消息中,包括了下列信息:
[0018]时间戳TIMESTAMP:2015

10

18 18:05:29,570;
[0019]日志级别LEVEL:INFO;
[0020]组成部分COMPONENT:DataNode$PacketResponder;
[0021]事件模板EVENT TEMPLATE:Received block blk562725280853087685 of size67108864from/10.251.91.84;
[0022]事件模板中的参数PARAMETERS:[“blk_

562725280853087685”、“67108864”、“10.251.91.84”];
[0023]日志模式解析的目的就是将日志解析成如上所示的结构化数据的形式,即从日志中提取出时间戳、等级、组件、日志模板和参数信息。
[0024]S2、将原始日志通过logstash方式或者Agent采集方式将数据过滤之后,并转发给kafka端;
[0025]需要说明的是,管道(Logstash Pipeline)是Logstash中独立的运行单元,每个管道都包含两个必须的元素输入(input)和输出(output),和一个可选的元素过滤器(filter),事件处理管道负责协调它们的执行。输入和输出支持编解码器,可以在数据进入或退出管道时对其进行编码或解码,而不必使用单独的过滤器。如:json、multiline等,因此在本申请将原始日志进行一些根据实际需求的过滤。
[0026]S3、获取redis缓存中的数据,将生成的日志利用XML配置文件直接映射成需要转化的map集合数据;
[0027]需要说明的是,redis是一个key

value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set
‑‑
有序集合)和hash(哈希类型);
[0028]原始日志经过过滤后,通过redis获取日志中对应的缓存数据;
[0029]接下来,利用XML配置文件进行自定义规则处理。
[0030]其中,XML配置文件包括解析规则单元、解析对象单元和属性规则转换单元;
[0031]其中,解析规则单元,具体指:根据grok表达式,读取parse标签,通过配合对象实现映射,将数据直接映射成实体类对象。
[0032]需要说明的是,grok表达式用来快速解析日志,可以将数据按照自定义的名称进行输出。举例如下:
[0033]%{IP:source_ip}表示使用名为IP的正则表达式提取出内容,并命名为source_ip;
[0034]在本申请实施例中,需要设计到grok表达式,grok表达式的使用方法这里不再详
细进行介绍,可参考下表;
[0035]通过表达式标识可以将数据直接映射成对应的数据;
[0036]表1grok表达式的使用说明
[0037][0038][0039]解析过程具体操作如下所示:
[0040]Grok表达式格式如下:
[0041]<%{WORD}>%{GREEDYDATA}%{IP:deviceAddress}\s+%{GREEDYDATA:deviceName}:发送时间:%{GREEDYDATA:occurTimeStr}\s+数据名称:%{GREEDYDATA}内容:%{GREEDYDATA:eventName}事件等级:%{GREEDYDATA:Level}源IP地址:%{IP:sourceAdress}源端口:%{INT:sou本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种日志数据自定义解析方法,其特征在于:包括:以下步骤:S1、获取原始日志;S2、将原始日志通过logstash方式或者Agent采集方式将数据过滤之后,并转发给kafka端;S3、获取redis缓存中的数据,将生成的日志利用XML配置文件直接映射成需要转化的map集合数据;S4、将map集合的数据入库openTsdb时序性数据库,实现数据的实时转化和自定义配置。2.如权利要求1所述的一种日志数据自定义解析方法,其特征在于:步骤S3中,所述XML配置文件包括三个部分,分别为解...

【专利技术属性】
技术研发人员:陈铭朱琪
申请(专利权)人:智网安云武汉信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1