一种基于NoSQL的大规模Web日志分析系统的制作方法

文档序号:8395866阅读:346来源:国知局
一种基于NoSQL的大规模Web日志分析系统的制作方法
【技术领域】
[0001]本发明涉及一种非关系型的数据库,尤其涉及一种基于NoSQL的大规模Web日志分析系统。
【背景技术】
[0002]目前,由于互联网的高速发展,越来越多的Web应用被用户所使用,使得Web日志的数量也快速增长。随着Web应用访问量的增大,传统的数据存储方式已不能满足当前的需求,因而促使了大规模Web日志分析的产生,但是,大多的Web日志分析系统不能够方便进行存储、调取,而且加大了开发人员的工作效率。
[0003]综上所述,针对现有技术存在的缺陷,本发明提出一种基于NoSQL的大规模Web日志分析系统,以解决现有技术的不足。

【发明内容】

[0004]本发明的目的是提供基于NoSQL的大规模Web日志分析系统,可以高效的对各种格式的日志进行处理,不仅减少了开发人员的工作量同时提高使用人员的工作效率。
[0005]本发明为解决其技术问题所采用的技术方案是,
[0006]—种基于NoSQL的大规模Web日志分析系统,该系统包括有三部分:分布式存储单元、分布式计算单元、用户界面客户端;
[0007]分布式存储单元包含有日志收集模块、日志存储模块,日志存储模块中的数据库采用NoSQL数据库MongoDB ;
[0008]分布式计算单元包含有日志处理模块、日志分析模块,日志分析模块采用Hadoop分布式计算架构;
[0009]用户界面客户端内部包含有可以对Web日志进行操作的日志查找单元、索引管理单元、用户管理单元、系统状态单元;
[0010]所述的日志收集模块为日志分析模块的基础,系统启动时的第一个任务就是要从Web应用站点获取日志信息,日志收集模块负责从Web应用站点接受agent发送的日志文件,并且重新定向为本地存储的文件,将文件存储在日志存储模块中;
[0011 ] 所述的日志处理模块对经过日志收集模块后的日志数据进行分析,由于其格式各不相同,并且可能包含一些无效的数据,需要对数据进行统一的清洗,日志收集模块包含有三个步骤数据清洗,用户识别,会话识别;
[0012]所述的日志存储模块以单文档为单位存储的,可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响;
[0013]所述的日志分析模块包括四分步骤:数据准备、Map函数、Reduce函数、日志分析。
[0014]进一步,所述的日志收集模块是收集日志信息的过程,日志文件本身是一个非结构化的文本文件,但是里面又包含了可以结构化出来的信息,因此对于日志文件是最适合采用MongoDB数据库进行存储,首先是对日志文件进行实施的解析和入库,对于任何的日志文件,基本都可以收集日志发生的时间,日志类型(info, error),日志等级,关键异常,异常详细说明等相关信息,这些信息在结构化出来后需要持久化的存储起来,采用MongoDB数据库可以实现本身在数据存储层的灵活水平扩展,为了对日志进行收集,需要安装下面一些组件:Fluentd with MongoDB Plugin、MongoDB> Apache with the Combined LogFormat,通过使用命令 gem install fluent-plugin-mongo 来进行安装。
[0015]进一步,日志收集模块中数据清洗时首先结合网站的拓扑结构,通过检查URL的后缀名,删除认为不相关的文件,通过分析页面HTML的源文件中的window, open来寻找对应的弹出页面的URL,从而删除该页面,当服务器对用户发出的请求相应失败时,Web日志同样会记录这种情况,但这对Web日志挖掘没有意义,所以在进行数据清理的时候,通过日志中的状态码删除服务器对请求响应失败的的记录;
[0016]用户识别是用来关联用户请求和服务器响应的过程,当用户访问某个Web页面时,需要对其产生一个标识符,当下次该用户来访问时,可以对其进行识别,通常用户标识符采用用户的访问IP ;
[0017]会话识别是指一个客户端浏览器与WEB服务器之间连续发生的一系列请求和相应过程,WEB服务器能够把属于同一个会话中的一系列的请求和响应过程关联起来;
[0018]日志收集模块主要对日志收集模块的数据进行数据清理,数据集成,数据变换,数据归约。
[0019]进一步,所述的日志存储模块包含有storage view:Share view、private view、journal view 日志;
[0020]Share view:位于内存上,会存储已经改变的要刷新到磁盘上的数据(脏数据),
Share view是唯--个直接连映射到数据库文件上的view,当启用MongoDB的日志功能时,MongoDB会请求操作系统把磁盘上的数据文件指向share view内存视图上,操作系统不会数据文件加载到share view中,MongoDB在需要时自己把数据文件加载到share view上;
[0021]Private view:位于内存上,存储用于读请求的数据,更改请求最先在这执行,MongDB 把 Private view 指向 share view ;
[0022]Journal view:存储已经在private cache上发生更改的数据,但是会在更改数据刷新到share view (cache)之前存储,Journal view确保了数据的持久化,如果更改的数据没有刷新到磁盘上的数据文件里,当MongoDB起来以后,MongoDB会把journallog中没应用到数据文件中的数据回放到share view (cache)中,最终会应用到数据文件中。
[0023]进一步,所述的日志分析模块运行的步骤为:
[0024]1、数据准备
[0025]从MongoDB数据库中导入原始数据到日志分析模块中;
[0026]2、Map 函数
[0027]写一个map函数,保存在文件mapper, rb中;
[0028]3、Reduce 函数
[0029]然后是reduce函数,保存在文件reducer, rb中;
[0030]4、日志分析
[0031]利用MapReduce方法处理第一步中获取的数据。
[0032]本发明的优点在于,该系统基于NoSQL的大规模Web日志分析系统具有非常好的可扩展性以及通用性。使用该系统可以高效的进行Web日志的处理和分析,通过Hadoop的MapReduce编程模式,对日志进行处理,同时进行本系统与单机处理系统的对比,证明本系统的高效性和可用性,设计新颖,是一项很好的设计方案,很有市场推广前景。
【附图说明】
[0033]下面结合附图和【具体实施方式】来详细说明本发明:
[0034]图1是本发明的系统模块图;
[0035]图2是本发明的架构示意图;
[0036]图3是本发明系统用例图;
[0037]图4是本发明日志收集模块示意图;
[0038]图5是本发明日志处理模块示意图;
[0039]图6是本发明日志存储模块示意图;
[0040]图7是本发明MongoDB存储视图;
[0041 ]图8是本发明系统网络拓扑图;
[0042]图9是本发明Web请求数来源分析图;
[0043]图10是本发明Web请求类型统计图;
【具体实施方式】
[0044]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合图示与具体实施例,进一步阐述本发明。
[0045]如图1、图2、图3所不,本发明提出的一种基于NoSQL的大规模Web日志分析系统,该系统包括有三部分:分布式存储单元、分布式计算单元、用户界面客户端;
[0046]分布式存储单元包含有日志收集模块、日志存储模块,日志存储模块中的数据库采用NoSQL数据库MongoDB ;
[0047]分布式计算单元包含有日志处理模块、日志分析模块,日志分析模块采用Hadoop分布式计算架构;
[0048]用户界面客户端内部包含有可以对Web日志进行操作的日志查找单元、索引管理单元、用户管理单元、系统状态单元;
[0049]所述的日志收集模块为日志分析模块的基础,系统启动时的第一个任务就是要从Web应用站点获取日志信息,日志收集模块负责从Web应用站点接受agent发送的日志文件,并且重新定向为本地存储的文件,将文件存储在日志存储模块中;
[0050]所述的日志处理模块对经过日志收集模块后的日志数据进行分析,由于其格式各不相同,并且可能包含一些无效的数据,需要对数据进行统一的清洗,日志收集模块包含有三个步骤数据清洗,用户识别,会话识别
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1