一种日志存储方法及系统与流程

文档序号:16880511发布日期:2019-02-15 22:05阅读:504来源:国知局
一种日志存储方法及系统与流程

本发明涉及数据处理领域,尤其是一种日志存储方法及系统。



背景技术:

日志在完整的信息系统里有着非常重要的作用。它可以记录系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。在安全领域,日志的重要地位尤甚,可以说是安全审计方面最主要的工具之一。所以将日志数据存储再调用显得尤为重要。

现有日志存储技术,普遍分为文件系统存储和数据库入库存储两部分。日志分析通过特定端口接收日志数据包,再转化为xml、json等数据交互格式给前台调用,这种属于文件系统的纯文本无标记型存储;数据库存储是单一类型数据库的存储,通常选用关系型数据库,在数据的检索中通过建立多个索引来加强检索效率。

现有技术有以下几点不足:日志原文未被存储。在特定环境下,日志数据包容易被攻击者利用,通过篡改、伪造等形式,造成日志服务器误报,攻击记录被抹去,让攻击者的操作行为无迹可寻。即使具备日志存储的条件,在拥有服务器权限的情况下,日志原文也可直接被修改,不能达到数据可信,安全可控的目的。

收集到的日志数据没有以结构化来存储,造成分类混乱,文本检索速度慢。

数据库选型不恰当。数据库存储是单一类型数据库的存储,通常选用关系型数据库,而关系型数据库在大数据量的情况下丢包率较高,对于海量数据的检索速度较慢,通过建立多个索引来加强检索效率,必将牺牲服务器的性能。此外,当涉及到大量数据关联时,需要用到多表联合查询,占用资源多,数据表设计复杂,扩展性不强。

在业务高峰期容易造成数据丢包。由于程序的线程设计问题,当业务高峰时期,数据大量读写,必将造成数据写入的丢失或者数据读取的卡顿。



技术实现要素:

本发明所要解决的技术问题是,提供一种日志存储方法及系统。所述的日志存储方法及系统方便程序的调用和数据处理,减少数据丢包,增强服务高可用性,实现了高效的数据存储和极强的扩展。

本发明所要解决的上述技术问题,通过如下技术方案予以解决:

一种日志存储方法,其特征在于,包括:

接收到日志数据后,程序开启数据接收线程,进行数据传输;

接收传输的数据并进行队列化处理;

调用队列化处理后的数据,以多节点分流的形式进行存储。

优选地,所述的消息列队化处理,将日志数据来源作为消息的生产来源,持久化至本地磁盘,再由服务控制调用。此方法可极大提高服务的容错率,减少数据的丢包,在业务的高峰期仍能保障用户数据不丢失,并且由于消息中间件的原理,不占用多余系统资源。

优选地,接收日志数据后,程序开启数据接收线程前,程序开放

监听端口,监听日志数据的流入。

优选地,所述开启数据接收线程,通过线程池管理进行。接收到日志数据时,程序开启一个数据接收线程,通过判断数据通道的连接数逐一增加线程数。使用线程池管理,增强线程间的通信,降低数据的丢包率,达到数据的全量接收。

优选地,所述队列化处理还包括将单一的事务处理解耦成消息中间件统一收集调配。在业务高峰期做大数据读写交互时,引用消息中间件服务,将数据做队列化处理,减少业务的耦合,将单一的事务处理解耦成消息中间件统一收集调配,再由具体操作事务分别订阅调用,增强服务高可用性。

优选地,所述日志存储包括:日志本地存储和日志入库。

进一步优选地,所述日志本地存储,是以树状多节点形式进行本

地文件存储。以ip为根节点,按日期为次级节点,最终以小时数为叶子节点,存储为txt文本。

进一步优选地,所述日志入库,采用nosql和缓存数据库相结合的方法。具体流程为:将接收到的数据按照时间戳顺序地插入mongodb中,根据资产的类型和日志的类型等进行区分存储于collection中,采用多重嵌套document的形式,把相同类型的数据直接关联至单表,提高数据检索的效率,减少程序遍历数据表的次数,加快检索速度。

进一步优选地,所述nosql方法使用了mongodb文档型数据库。

进一步优选地,所述的mongodb文档型数据库,提供了高效的数据存储和极强的扩展性,基于key-value,无耦合性。

进一步优选地,所述缓存数据库方法在数据缓存处理上,采用redis数据库的定时缓存,将高频低频访问数据分离,合理分配内存的和cpu的使用,高频读写的数据做数据的预处理,通过动态分表的技术,增强用户体验。

优选地,所述树状多节点存储,是将日志流量按照不同来源进行标识,分类分目录存放于系统中,以形成“目录结构树”进行存储。用方便后续的程序调用,有利于提高检索速度。

进一步优选地,所述的目录结构树,采用多级遍历树的方式,提高查询校验的准确性和可扩展性。可根据需要,定义第二级目录的标识。

优选地,所述nosql,可做数据下载及数据共享。具体为,前台发送消息构造请求,提供资源id和设备标识以及时间戳,将杂乱的数据分类下载导出,服务器提供多平台的数据接口

本发明还提供一种日志存储系统,其包括:

数据传输单元,所述的数据接收单元用于接收日志后开启一个数据接收线程,进行数据传输;

数据处理单元,所述的数据处理单元用于收集到的数据做队列化处理;

数据存储单元,所述数据存储单元用于调用处理后的数据,以多节点分流的形式进行存储。

本发明的有益效果是:采用树状节点式存储,有利于程序的调用和数据处理,如数据聚合统计、数据检索等。使用消息队列的方式处理高峰时段数据,减少数据丢包,增强服务高可用。选用非关系数据库和缓存数据技术,提供高效的数据存储和极强的扩展性。全文存储和存证技术的结合,保障数据可信,安全可控。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明所述的日志存储流程示意图;

图2是本发明所述的日志存储系统结构图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

如图1所示,本发明提供一种日志存储方法,所述的方法具体为:

101.接收到日志数据后,程序开启数据接收线程,进行数据传输;

102.接收传输的数据并进行队列化处理;

103.调用队列化处理后的数据,以多节点分流的形式进行存储。

步骤101,具体的,接收日志数据后,程序开启数据接收线程,进行数据传输。数据接收前程序开放监听端口,监听日志数据的流入.

步骤102,将接收到的数据进行队列化处理,具体的,高峰期做大数据读写交互时候,则引用消息中间件服务,业务消息队列,将数据单一的事物处理解耦成消息中间件统一收集调配,再由具体的操作事务分别订阅调用。

步骤103,具体的,数据的存储分为日志本地存储和日志入库两种形式,日志本地存储是通过树状多节点本地文件存储的方式以ip为根节点,按日期为次级节点,最终以小时数为叶子节点,存储为txt文本如:172.16.1.1:2018-08-07:12.txt。

日志入库,将接收到的数据按照时间戳顺序地插入mongodb中,根据资产的类型和日志的类型等进行区分存储于collection中,采用多重嵌套document的形式,把相同类型的数据直接关联至单表。

nosql可提供数据下载及数据共享,前台发送消息构造请求,提供资源id和设备标识以及时间戳,将杂乱的数据分类下载导出,服务器提供多平台的数据接口,如:云平台的ssh、sftp,本地主机的消息订阅等。

如图2所示,本发明提供了一种日志存储系统,所述的系统具体为:

201.数据传输单元,所述的数据接收单元用于接收日志后开启一个数据接收线程,进行数据传输;

202.数据处理单元,所述的数据处理单元用于收集到的数据做队列化处理;

203.数据存储单元,所述数据存储单元用于调用处理后的数据,以多节点分流的形式进行存储。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1