基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc

上传人:bao****ty 文档编号:132336109 上传时间:2020-05-14 格式:DOC 页数:30 大小:1.43MB
返回 下载 相关 举报
基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc_第1页
第1页 / 共30页
基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc_第2页
第2页 / 共30页
基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc_第3页
第3页 / 共30页
基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc_第4页
第4页 / 共30页
基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Flume的海量日志统一分析平台--计算机信息管理自学考试毕业论文.doc(30页珍藏版)》请在金锄头文库上搜索。

1、中南大学高等教育自学考试毕业论文论文题目:基于Flume的海量日志统一分析平台报考专业:计算机信息管理(本)考生姓名:考 籍 号:工作单位:通讯地址及邮政编码:联系电话: 手机:电子邮箱 (Email):2017年3月8日目 录1引言111 课题背景及意义112 研究现状213日志收集系统的发展趋势214课题研究内容415论文组织结构42 Flume等技术介绍421 Flume框架介绍422 Kafka架构介绍823 Storm架构介绍924 ElasticSearch架构介绍103 日志分析平台需求分析1131 日志分析平台设计目标1132日志分析平台需求11321日志采集模块Flume A

2、gent的功能需求12322日志收集模块Flume Server的功能需求12323 日志统计模块Storm的功能需求1233日志分析平台运行环境需求1234本章小结124 统一日志平台总体架构设计1341本章小结135 统一日志平台具体实现1351 日志采集模块Flume Client的实现1451.1日志采集模块Flume Agent的具体实现1451.2日志采集模块Flume Agent的目录监控具体实现1451.3日志采集模块Flume Agent的数据保护机制1551.4日志采集模块Flume Agent与Flume Server的数据交互1651.5日志采集模块Flume Clie

3、nt配置项1751.6日志采集模块Flume Agent的读取Kafka内容具体实现1852 日志采集模块Flume Server的实现2052.1日志采集模块Flume Server日志归集实现2052.2日志采集模块Flume Server配置项216 统一日志平台集成测试22结论26致谢27参考文献28摘 要近年来,随着互联网信息技术的迅速发展,互联网上的日志信息资源已经达到海量级别,日志中包含了用户所有的规律信息,能够更加了解用户需求,为企业带来价值,以及包含业务链路数据,运维人员通过日志进行故障定位,以及故障分析,以及性能调优等工作,以及可以通过日志收集到KPI数据进行应用考核等。随

4、着云计算、PaaS平台的普及,虚拟化、容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端。通常,我们需要需要获取日志,来进行监控、分析、预测、统计等工作,但是云端的服务不是物理的固定资源,日志获取的难度增加了,但这又是工程师迫切需要的。,因此,如何应对海量并且分散的日志进行收集统计并且分析,已经成为目前大部分企业都特别关注的一个课题。本文针对分布式环境下,通过Flume收集海量日志,进行ElasticSearch存储,Kibana可视化展示,Storm进行数据分析。关键词 海量日志;Flume;ElasticSearch;kibana;Storm1 引言11 课题背景及意义

5、近年来,随着互联网信息技术的迅速发展,互联网上的信息资源已经达到海量级别,每天需要处理的日志信息巨大,日志中包含了用户所有的规律信息,能够更加了解用户需求,为企业带来价值,以及包含业务链路数据,运维人员通过日志进行故障定位,以及故障分析,以及性能调优等工作,以及可以通过日志收集到KPI数据进行应用考核等。随着云计算、PaaS平台的普及,虚拟化、容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端。通常,我们需要需要获取日志,来进行监控、分析、预测、统计等工作,但是云端的服务不是物理的固定资源,日志获取的难度增加了,以往可以SSH登陆的或者FTP获取的,现在可不那么容易获得,但

6、这又是工程师迫切需要的,最典型的场景便是:上线过程中,一切都在GUI化的PaaS平台点点鼠标完成,但是我们需要结合tail -F、grep等命令来观察日志,判断是否上线成功。当然这是一种情况,完善的PaaS平台会为我们完成这个工作,但是还有非常多的ad-hoc的需求,PaaS平台无法满足我们,我们需要日志,因此,如何应对海量并且分散的日志进行收集统计并且分析,已经成为目前大部分企业都特别关注的一个课题。一般的数据挖掘是针对关系型数据库中结构化数据进行的分析。而如今日志数据杂乱无章,务结构,有中间件日志,有应用日志,有组件日志,应用日志因项目架构标准化不一而没有标准化,而且数据量还非常大,呈指数

7、级不断增长,分布在非常多的服务器或者节点上,这就导致了数据挖掘需要用到新的挖掘技术,以及模型算法等,从需求上体现,互联网上的数据快速增长,数据挖掘的难度也日益递增,如果还采用高端硬件来处理海量数据,成本是无法承受的,而且有瓶颈,因此要借助分布式计算基础来处理海量数据挖掘,这里涉及到存储的复杂以及数据标准化的问题。进入云计算时代,Apache众多开源项目得到青睐,比如Flume框架,以及基于Lucene的搜索服务器ElasticSearch,以及Strom实时计算框架等。在分布式计算如此火热的场景下,本文设计了一个针对海量日志收集和统计的平台,该平台的研究意义可总结为以下三点:1、日志的快速增长

8、,使得数据的收集和统计任务远比普通的搜索任务要复杂很多,本文基于开源的分布式数据收集框架和云计算等技术实现,整体框架的都具有很强的可扩展性和可重用性。2、从应用价值上看,日志收集统计系统可以为应用日志统计提供一个可靠的数据依据,可以根据统计用户行为上的不通表现,配置满足用户需求的内容,提升产品的运营能力。3、从运维角度上看,可以通过日志收集统计出一个可靠的性能数据,可以根据性能分析数据,配置出系统需求所需要的资源,提前预测是否需要扩容等,提高产品的资源利用率,以及健壮性。12 研究现状1)国内研究现状出现了一些日志收集统计工具,但是只是针对日志文件进行简单的统计,针对一些频率以及时间的统计,不

9、能关联起所有的日志,输出一个更有意义的数据。2)国外研究现状出现了一系列日志大数据存储方案,但是是针对日志进行批量采集,收集到一定的量级后,进行分布式的统计计算,得出过去一段时间内的一些维度数据,进行可视化。13日志收集系统的发展趋势随着日志数量的迅速增长,日志中所包含的信息也越来越具有价值,尤其是针对互联网企业,日志收集与统计更直接的提供出来用户的信息,现如今大部分的企业是通过某些开源的日志收集系统作为代理端来收集日志,然后存储到分布式系统上进行一系列的统计计算。开源的日志收集框架一般需要满足以下特点:1) 统计系统与被收集的应用系统上需要关系解耦2) 具有高度的可扩展性,在数据量增长的情况

10、下,只需要进行负载均衡或者增加节点即可3) 实时性高4) 实时分析,统计效率高5) 数据可视化清晰,展示最终结果数据正确率高包含这些特征的开源框架有,Apache的Flume,Linkedin的Kafka,Apache的Storm,和Apache的ElasticSearch,以及Kibana等。Apache的Flume开源日志收集系统。Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume OG

11、代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume。Linkedin的kafka是一种高吞吐量的分布式发布订阅消息系统,她有如

12、下特性:通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。支持通过kafka服务器和消费机集群来分区消息。支持Hadoop并行数据加载。kafka的目的是提供一个发布订阅解决方案,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案

13、。kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。kafka分布式订阅架构如下图1所示图1 Kafka架构图Storm是一个分布式的、高容错的实时计算系统。Storm对于实时计算的的意义相当于Hadoop对于批处理的意义。Hadoop为我们提供了Map和Reduce原语,使我们对数据进行批处理变的非常的简单和优美。同样,Storm也对数据的实时计算提供了简单Spout和Bolt原语。Storm适用的场景:1、流数据处理:Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中。2、分布式RPC:由于Storm

14、的处理组件都是分布式的,而且处理延迟都极低,所以可以Storm可以做为一个通用的分布式RPC框架来使用。在这个教程里面我们将学习如何创建Topologies, 并且把topologies部署到storm的集群里面去。Java将是我们主要的示范语言, 个别例子会使用python以演示storm的多语言特性。14课题研究内容论文主要针对企业系统产生的日志进行需求统计,设计实现了日志实时采集,实时分析,数据存储和统计模块,并对各个模块进行集成测试。本课题的研究主要内容:l 研究统计统一日志平台的架构设计,针对整体架构进行搭建。l 研究统计Flume Client二次开发,能够进行定制化的采集日志发送

15、到Flume Server。l 研究统计Flume Server的数据收集以及传输模式。l 研究ElasticSearch存储以及kibana可视化能力。l 研究Storm实时分析日志统计模块。15论文组织结构第一章 绪论,介绍日志分析平台的背景和当前现状,以及意义,通过目前比较流行的开源收集系统做了比较后,确定本文采用Flume开源框架。第二章 介绍了Flume框架和本文相关的一系列开源技术,主要包括,ElasticSearch、Kafka、Storm等技术,为日志分析平台整体搭建做准备。第三章 是日志分析平台的需求分析,主要介绍当前平台搭建的目标,以及需求和环境需求。第四章 介绍平台总体架构设计,以及各个模块间的数据传输功能描述。第五章 介绍平台各模块具体实现。第六章 对日志分析平台进行集成测试。2 Flume等技术介绍21 Flume框架介绍Flume的一些核心概念:l Agent

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号