一种实时监控分析大量日志的系统及方法

文档序号:10512063阅读:246来源:国知局
一种实时监控分析大量日志的系统及方法
【专利摘要】本发明公开了一种实时监控分析大量日志的系统及方法,属于网管监控技术领域。本发明的实时监控分析大量日志的系统包括日志采集模块、日志汇总及分发模块和日志处理模块;日志采集模块采用Flume?ng技术,分为Agent层、Collector层和Store层;日志汇总及分发模块采用kafka技术,用于接收Flume集群的日志消息,并将接收的日志消息分发到日志处理模块;日志处理模块采用storm技术,由数据源Spout和日志处理者Bolt构成。该发明的实时监控分析大量日志的系统能实时处理网络中的风险和故障,从而保障网络的安全与稳定,减少使用者的损失,具有很好的推广应用价值。
【专利说明】
一种实时监控分析大量日志的系统及方法
技术领域
[0001]本发明涉及网管监控技术领域,具体提供一种实时监控分析大量日志的系统及方法。
【背景技术】
[0002]随着互联网技术的飞速发展,网络的规模越来越大,网络也越来越复杂,为了保障网络的正常运行,需要对网络设备进行实时监控,还需要对网络中的应用系统进行实时监控。
[0003]由于网络的复杂性,日志消息的形式也是多种多样。传统的日志监控手段需要开发定制大量的接口,会浪费大量的人力财力。此外,传统的日志监控方式在实时处理海量日志时存在很多的不足,如:当网络中新增加一种网络设备或应用系统时,都需要为该新增加的设备或系统定制开发对应的日志采集脚本;传统方式是先将采集到的日志消息存放在磁盘上面,然后再分发给日志处理引擎处理,时效性较差,不能满足实时处理的要求;对于文本方式的日志消息,在处理日志消息时,很难检测到哪些日志是最新产生的,传统方式需要将整个日志文件扫描一遍,才能确定最新产生的日志消息;面对海量的日志消息,不可能在一台机器上面完成日志的处理,而是需要用到分布式的处理方式,而传统方式多集中在一台服务器上完成,不能满足海量日志处理的要求;由于日志的处理涉及到多个处理环节,不仅需要分布式处理方式,还需要流式处理方式,传统的日志处理方式很难满足该要求。
[0004]传统方式处理海量日志时,分析处理滞后,无法做到实时的分析处理,无法及时了解和处理网络中的风险和故障,给公司和客户带来很大的不便。

【发明内容】

[0005]本发明的技术任务是针对上述存在的问题,提供一种能实时处理网络中的风险和故障,从而保障网络的安全与稳定,减少使用者损失的实时监控分析大量日志的系统。
[0006]本发明进一步的技术任务是提供一种过程简单,能实时处理网络中的风险和故障,从而保障网络的安全与稳定的实时监控分析大量日志的方法。
[0007]为实现上述目的,本发明提供了如下技术方案:
一种实时监控分析大量日志的系统,包括日志采集模块、日志汇总及分发模块和日志处理模块;
其中,所述日志采集模块采用Flume-ng技术,分为Agent层、Collector层和Store层,Agent层用于代理采集日志消息,Collector层部署在中心服务器上,用于接收Agent层发送的日志消息,并将日志消息写到相应的Store层,Store层用于存储日志消息;
所述日志汇总及分发模块采用kafka技术,用于接收Flume集群的日志消息,并将接收的日志消息分发到日志处理模块;
所述日志处理模块采用storm技术,由数据源Spout和日志处理者Bolt构成,数据源Spout用于从日志汇总及分发模块读取日志消息,日志处理者Bolt用于将所有的日志消息处理逻辑进行封装,处理输入的数据流,并产生输出新的数据流。
[0008]Agent层每个机器部署一个进程,负责对单机的日志采集工作。Collector层部署在中心服务器上,负责接收Agent层发送的日志消息,并且将日志消息根据路由规则写到相应的Store层中。Store层负责提供永久或者临时的日志消息存储服务,或者将日志流导向其他服务器。
[0009]通过Flume的Agent层采集日志消息,汇总到Flume集群,再由Flume的Sink将日志消息输送到kafka集群,完成数据的生产流程。数据源Spout节点实时接收kafka发送的最新日志消息,并将日志消息不断的发送给多个负责归一化的日志处理者Bolt进程。
[00?0] 作为优选,所述Agent层到Collector层使用LoadBalance策略,将所有的日志消息均衡地发送到所有的Collector上,达到负载均衡的目标,同时处理单个Collector失效的问题。Collector层的目标主要有三个:SinkHdfs,SinkKafka和SinkBypass,提供离线的数据到SinkHdfs,提供实时的日志流到SinkKafka和SinkBypass。本发明选用的是SinkKafka。[0011 ] 作为优选,所述S P ο u t与B ο 11之间、B ο 11与B ο 11之间的信息传递支持Shuf f I eGroup ing 和 F i e IdsGroup ing 策略。
[0012]作为优选,所述日志处理者Bolt完成的操作为:日志的解析、日志的过滤、屏蔽、派生告警、入库和日志汇总。在日志的过滤和派生告警环节,根据告警规则判断当前的日志消息是否满足相关规则,若满足规则就触发相关的处理。
[0013]—种实时监控分析大量日志的方法,包括以下步骤:
(一)、日志采集:采用Flume-ng技术,通过Agent代理采集日志消息,将日志消息汇总到Flume集群,由Flume的Sink将日志消息输送到Kafka集群,完成数据的生产流程;
(二)日志汇总及分发:采用kafka技术,从Flume的Sink中读取日志消息,并将日志消息输送到数据源Spout中;
(三)日志处理:采用storm技术,由一个数据源Spout节点实时接收最新的日志消息,并将日志消息采用ShuffleGrouping、FieldsGrouping不断的传递给多个负责归一化的日志处理者Bolt进程中,完成日志的解析、日志的过滤、屏蔽、派生告警、入库和日志汇总。
[OOM] 作为优选,步骤(三)中构建日志处理的storm的Topology架构,将日志处理流程根据业务节点拆分为多个进程,多进程之间通过可靠的消息传递实时交互数据。
[0015]与现有技术相比,本发明具有以下突出的有益效果:
(一)该发明所述实时监控分析大量日志的方法能够实时的处理网络中的风险和故障,时效性强,可以最大程度上保障网络的安全与稳定;
(二)该发明的日志汇总及分发模块采用kafka技术实现,kafka是一种高吞吐量的分布式发布订阅消息系统,适用于大量日志的实时处理;
(三)该发明的日志处理模块采用storm技术,为分布式的流式处理方式,该技术降低了实时处理的复杂性、可以使用各种编程语言、容错性高、水平扩展性能好、消息处理过程可靠并且快速,能够保证消息得到快速可靠的处理。
【附图说明】
[0016]图1是本发明所述实时监控分析大量日志的系统的结构示意图;
图2是本发明所述实时监控分析大量日志的系统的日志采集模块、日志汇总及分发模块的具体结构示意图;
图3是本发明所述实时监控分析大量日志的系统的日志处理模块的具体结构示意图; 图4是本发明所述实时监控分析大量日志的方法的日志处理流程图;
图5是本发明所述实时监控分析大量日志的方法告警的生成判断过程流程图。
[0017]其中,1.日志采集模块,2.日志汇总及分发模块,3.日志处理模块。
【具体实施方式】
[0018]下面将结合附图和实施例,对本发明的一种实时监控分析大量日志的系统及方法作进一步详细说明。
实施例
[0019]如图1、图2和图3所示,本发明的一种实时监控分析大量日志的系统,包括日志采集模块1、日志汇总及分发模块2和日志处理模块3。日志采集模块I采用Flume-ng技术,分为Agent层、Co I lector层和Store层。Agent层每个机器部署一个进程,用于代理采集日志消息。Collector层部署在中心服务器上,用于接收Agent层发送的日志消息,并将日志消息写到相应的Store层。Store层负责提供永久或者临时的日志消息存储服务,或者将日志流导向其他服务器。Agent层到Col lector层使用LoadBalance策略,将所有的日志消息均衡地发到所有的Co I Iec tor上,达到负载均衡的目标,同时处理单个Co I Iec tor失效的问题。Collector层选用SinkKafka,提供实时的日志流到SinkKafka。
[0020]日志汇总及分发模块2采用kafka技术,用于接收Flume集群的日志消息,并将接收的日志消息分发到日志处理模块。
[0021]日志处理模块3采用storm技术,由数据源Spout和日志处理者Bolt构成。数据源Spout用于从日志汇总及分发模块读取日志消息,日志处理者Bolt用于将所有的日志消息处理逻辑进行封装,处理输入的数据流,并产生输出新的数据流。Spout与Bolt之间、Bolt与Bolti 间的消息传递支持Shuf f I eGroup ing和Fi e I dsGroup ing策略。
[0022]通过Flume的Agent层采集日志消息,汇总到Flume集群,再由Flume的Sink将日志消息输送到kafka集群,完成数据的生产流程。数据源Spout节点实时接收kafka发送的最新日志消息,并将日志消息不断的发送给多个负责归一化的日志处理者Bolt进程。
[0023]Bolt完成的操作包括日志的解析、日志的过滤、屏蔽、派生告警、入库和日志汇总。具体流程如图4所示。在日志的过滤和派生告警环节,根据告警规则判断当前的日志消息是否满足相关的规定,如满足规定则触发相关的处理。如图5所示。
[0024]本发明所述实时监控分析大量日志的方法的具体过程为:
(1)先在服务器上搭建Flume的服务端,并在需要监控的服务器上面安装Flume的Agent端,Agent端来采集日志消息,并将采集到的日志消息发送到Co 11 e c tor层,Co 11 e c tor层的日志信息最终以日志文件的形式写到相应的Store层;
(2)kafka软件的安装部署,并配置topic消息从flume的sink中读取日志消息;
(3)安装部署storm和其同步所需的zookeeper软件,首先storm的spout从kafka中读取日志消息,然后采用Shuff IeGrouping方式分发给Bolt,Bolt用于将所有的日志消息处理逻辑进行封装,处理输入的数据流,并产生输出新的数据流,在Bolt中进行日志的解析、日志的过滤、屏蔽、派生告警、入库和日志汇总等处理;
(4)在Bolt中加载日志处理规则到内存中(MAP结构),在处理日志消息的过程中,用日志消息来匹配处理规则,如果日志消息满足处理规则就触发相关的日志消息的处理。
[0025]以上所述的实施例,只是本发明较优选的【具体实施方式】,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
【主权项】
1.一种实时监控分析大量日志的系统,其特征在于:包括日志采集模块、日志汇总及分发模块和日志处理模块; 其中,所述日志采集模块采用Flume-ng技术,分为Agent层、Col lector层和Store层,Agent层用于代理采集日志消息,Collector层部署在中心服务器上,用于接收Agent层发送的日志消息,并将日志消息写到相应的Store层,Store层用于存储日志消息; 所述日志汇总及分发模块采用kafka技术,用于接收Flume集群的日志消息,并将接收的日志消息分发到日志处理模块; 所述日志处理模块采用storm技术,由数据源Spout和日志处理者Bolt构成,数据源Spout用于从日志汇总及分发模块读取日志消息,日志处理者Bolt用于将所有的日志处理逻辑进行封装,处理输入的数据流,并产生输出新的数据流。2.根据权利要求1所述的实时监控分析大量日志的系统,其特征在于:所述Agent层到Collector层使用LoadBalance策略,将所有的日志消息均衡地发到所有的Collector上。3.根据权利要求1或2所述的实时监控分析大量日志的系统,其特征在于:所述Spout与Bolt之间、Bolt与Bolt之间的日志消息传递支持Shuff IeGrouping和FieldsGrouping策略。4.根据权利要求3所述的实时监控分析大量日志的系统,其特征在于:所述日志处理者Bolt完成的操作为:日志的解析、日志的过滤、屏蔽、派生告警、入库和日志汇总。5.一种实时监控分析大量日志的方法,其特征在于:包括以下步骤: (一)、日志采集:采用Flume-ng技术,通过Agent代理采集日志消息,将日志消息汇总到Flume集群,由Flume的Sink将日志消息输送到Kafka集群,完成数据的生产流程; (二)日志汇总及分发:采用kafka技术,从Flume的Sink中读取日志消息,并将日志消息输送到数据源Spout中; (三)日志处理:采用storm技术,由一个数据源Spout节点实时接收最新的日志消息,并将日志消息采用ShuffleGrouping、FieldsGrouping不断的传递给多个负责归一化的日志处理者Bolt进程中,完成日志的解析、日志的过滤、屏蔽、派生告警、入库和日志汇总。6.根据权利要求5所述的实时监控分析大量日志的方法,其特征在于:步骤(三)中构建日志处理的storm的Topology架构,将日志处理流程根据业务节点拆分为多个进程,多进程之间通过可靠的信息传递实时交互数据。
【文档编号】G06F17/30GK105868075SQ201610196661
【公开日】2016年8月17日
【申请日】2016年3月31日
【发明人】赵宏
【申请人】浪潮通信信息系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1