System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及大数据量下的日志数据接收流量控制,尤其涉及一种单节点大数据量下的日志数据接收限流和解析范化的方法和系统。
技术介绍
1、由于客户业务环境的差异和实际网络中安全事件的不可预测性,目前市面上大多数的日志审计类产品在应对大数据量的日志接入时都没有特别有效的解决方案,传统的解决方案大多都是采取分布式处理和存储,但是分布式的方案成本较高,而且采取分布式部署之后仍然可能面临单节点的大数据量的日志接入问题,面临大数据量的日志接入时,由于单节点的机器性能限制,仍然面临系统宕机的问题。
技术实现思路
1、本专利技术针对上述问题,提出一种单节点大数据量下的日志数据接收限流和解析范化的方法和系统,通过多重过滤规则(授权的日志源数、单个日志源授权的单日日志量数、日志带宽限流的阈值、过滤条件等)将接入的日志数据进行过滤,过滤后使系统能够在瞬时的大数据日志接入时稳定运行,扛住瞬时的大流量冲击,同时最大限度保留有用的原始日志数据。
2、由于用户业务环境和网络的复杂性,接入审计系统的日志量是不确定的,而且经常会有突发情况出现导致瞬时产生的日志量过大,对于单节点的审计类产品来说如果没有很好的做好应对,在这种情况下很容易造成系统宕机不可使用,即使日志量下降回归正常后,审计系统也由于之前瞬时的大数量日志冲击导致不可用,用户将彻底丢失突发事件后的日志数据直到系统人为恢复正常。本专利技术的目的就是通过各种过滤和限制手段,将日志接入量控制在系统能承受的正常范围内,在面临瞬时大数据量冲击时能够保证平稳
3、为了实现上述目的,本专利技术采用以下技术方案:
4、本专利技术一方面提出一种单节点大数据量下的日志数据接收限流和解析范化的方法,包括:
5、步骤1,创建日志接收类,持续监听514端口,并持续接收原始日志,从原始日志中提取有用的信息封装成事件处理对象;所述事件处理对象的属性包括:日志的类型,采集器ip,日志源ip,原始日志的字节数组;
6、步骤2,判断事件处理对象中的日志源ip是否存在于日志源ip的集合中:
7、如果存在,则读取授权文件中的单个日志源每日授权的日志数,判断单个日志源ip每日发送的日志数是否超出单个日志源每日授权的日志数,如果超出,则返回步骤1继续执行;如果不超出,则更新单个日志源ip每日发送的日志数,然后执行步骤3;
8、如果不存在,读取授权文件中的授权日志源节点数,判断存放日志源ip的对象大小是否小于授权日志源节点数,如果小于,则将事件处理对象中的日志源ip放入日志源ip的集合中,然后执行步骤3,如果不小于,则返回执行步骤1;
9、步骤3,读取系统设置,判断系统是否开启日志带宽限流:
10、如果开启限流,根据实际的硬件配置,动态获取限流的阈值,针对每条事件处理对象判断是否超过阈值,如果超出,返回步骤1继续执行,如果不超出,则执行步骤4;
11、如果未开启限流,则直接执行步骤4;
12、步骤4,将事件处理对象存入kafka中;
13、步骤5,多线程从kafka中读取事件处理对象进行处理,读取事件处理对象中的原始日志的字节数组,并将原始日志的字节数组进行范式化,解析成事件对象,针对不同的事件的属性字段进行赋值;
14、步骤6,读取过滤器设置,判断事件对象是否被过滤器的条件拦截,如果被过滤器拦截,则返回到步骤5;如果未被拦截,则执行步骤7;
15、步骤7,读取事件加密配置,判断原始消息是否需要存储时加密,如果需要加密,根据设置的加密算法对事件的原始消息字段进行加密,然后执行步骤8;如果不需要加密则直接执行步骤8;
16、步骤8,判断事件中设置的存储引擎,根据事件对象中存放引擎的字段属性判断调用不同的存储策略,存入不同的数据库中。
17、进一步地,所述步骤3中,所述日志带宽限流指的是每秒接收处理的日志最大条数,开启后会根据服务器的内存大小来决定每秒限流的大小限制。
18、进一步地,所述步骤3中,根据实际的硬件配置,动态获取限流的阈值包括:
19、内存<8g时,限流的阈值为1500条日志;8g≤内存<16g,限流的阈值为8000条日志;16g≤内存<32g时,限流的阈值为15000条日志;32g≤内存<64g时,限流的阈值为30000条日志;内存大于64g时不限制带宽。
20、进一步地,所述步骤5中,线程从事件处理线程池中获取,线程池的初始线程数根据读取硬件配置动态获取,根据硬件cpu的核数来设定。
21、进一步地,所述步骤5还包括:
22、为事件指定多个存储引擎,所述存储引擎包括mysql、elasticsearch、clickhouse。
23、进一步地,所述步骤7中,所述加密算法包括国密sm3算法。
24、进一步地,所述步骤8包括:
25、对于需要频繁进行报表和统计查询、分组查询的数据存放在clickhouse中;
26、对于需要对原始消息进行全文检索类的日志存放在elasticsearch中;
27、对于与用户业务数据关联紧密且需要进行关联查询的日志存放在mysql中。
28、本专利技术另一方面提出一种单节点大数据量下的日志数据接收限流和解析范化的系统,包括:
29、日志接收模块,用于创建日志接收类,持续监听514端口,并持续接收原始日志,从原始日志中提取有用的信息封装成事件处理对象;所述事件处理对象的属性包括:日志的类型,采集器ip,日志源ip,原始日志的字节数组;
30、第一判断模块,用于判断事件处理对象中的日志源ip是否存在于日志源ip的集合中:
31、如果存在,则读取授权文件中的单个日志源每日授权的日志数,判断单个日志源ip每日发送的日志数是否超出单个日志源每日授权的日志数,如果超出,则返回日志接收模块继续执行;如果不超出,则更新单个日志源ip每日发送的日志数,然后执行第二判断模块;
32、如果不存在,读取授权文件中的授权日志源节点数,判断存放日志源ip的对象大小是否小于授权日志源节点数,如果小于,则将事件处理对象中的日志源ip放入日志源ip的集合中,然后执行第二判断模块,如果不小于,则返回执行日志接收模块;
33、第二判断模块,用于读取系统设置,判断系统是否开启日志带宽限流:
34、如果开启限流,根据实际的硬件配置,动态获取限流的阈值,针对每条事件处理对象判断是否超过阈值,如果超出,返回日志接收模块继续执行,如果不超出,则执行事件处理对象存储模块;
35、如果未开启限流,则直接执行事件处理对象存储模块;
36、事件处理对象存储模块,用于将事件处理对象存入kafka中;
<本文档来自技高网...【技术保护点】
1.一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,包括:
2.根据权利要求1所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤3中,所述日志带宽限流指的是每秒接收处理的日志最大条数,开启后会根据服务器的内存大小来决定每秒限流的大小限制。
3.根据权利要求2所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤3中,根据实际的硬件配置,动态获取限流的阈值包括:
4.根据权利要求1所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤5中,线程从事件处理线程池中获取,线程池的初始线程数根据读取硬件配置动态获取,根据硬件CPU的核数来设定。
5.根据权利要求1所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤5还包括:
6.根据权利要求1所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤7中,所述加密算法包括国密SM3算法。
7.根据权利要求5
8.一种单节点大数据量下的日志数据接收限流和解析范化的系统,其特征在于,包括:
...【技术特征摘要】
1.一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,包括:
2.根据权利要求1所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤3中,所述日志带宽限流指的是每秒接收处理的日志最大条数,开启后会根据服务器的内存大小来决定每秒限流的大小限制。
3.根据权利要求2所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤3中,根据实际的硬件配置,动态获取限流的阈值包括:
4.根据权利要求1所述的一种单节点大数据量下的日志数据接收限流和解析范化的方法,其特征在于,所述步骤5中,线...
【专利技术属性】
技术研发人员:张乾坤,董得东,杨振华,许大辰,
申请(专利权)人:郑州云智信安安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。