用Fluent和MongoDB构建高效海量日志采集系统.docVIP

用Fluent和MongoDB构建高效海量日志采集系统.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Fluent和MongoDB构建高效海量日志采集系统

用Fluent和MongoDB构建高效海量日志采集系统 摘要:由于传统方法不能满足海量日志存储的需求,对于海量日志的分析传统方法也出现了瓶颈问题,所以本文通过不同类型存储介质对海量日志读写性能实验,并与日志采集软件相结合提出了解决存储海量日志的一种方案:用Fluent(日志采集软件)与MongoDB来构建日志采集系统。实验表明:这种方式与传统存储方式相比,突破单机环境下日志存取的瓶颈,大幅度提高海量日志的存取速度,简化了日志分析与统计操作。在MongoDB集群环境下,高并发的读写满足了海量日志存取的需求,并且这种集群具有可扩展性和高可用性。   关键词:fluent; MySQL; MongoDB; Hadoop; 海量日志; 日志采集系统   中图分类号:TP31 文献标识码:A1 概述   日志是一个完整系统里面重要的功能组成部分,其利用特定的形式准确并且规范地表达出系统产生的所有行为,依据对日志的分析不仅可以对系统自身的性能进行有效的优化,而且当系统发生故障时,能够准确、及时地定位错误,方便加以修正。   目前,随着互联网web2.0的迅速发展,一个企业级的服务器每天产生日志信息是相当可观的,日志分析研究多集中在如何挖掘数据,而对如何存储海量数据研究较少。这主要是因为很多日志分析系统采用了关系数据库存储或简单的顺序存储,如商用的Oracle数据库,免费的MySQL。采用关系数据库存在效率低下的缺点,简单的顺序存储又存在功能不够强大、查询效率低等不足。因此日志处理缺乏一种能高效查询、适合存储海量数据的管理系统做支撑。现在处理海量日志系统的方案有很多,大部分是基于分布式的原理来实现解决的。本文提出一种Fluent与MongoDB相结合的方法来完成海量日志的存储。   2 提出问题与方案   2.1 提出问题与方案   对于海量日志存储与查询,LZ是一个广告公司的技术人员,需要对500M行(5亿行)的log信息进行存储和数据分析工作,并提出了自己的三种想法:   (1)将海量数据存在MySQL中并对每一个字段做索引。   (2)将以上数据存在MongoDB中并建立索引。   (3)将所有行加载到Hadoop中,通过MapReduce进行数据分析。   2.2提出方案的原因   第一方案选择MySQL的原因:MySQL是一个开放源码的小型关系型数据库管理系统,软件本身具有体积小、速度快、总体拥有成本低的特点。MySQL是跨操作系统、支持多线程、支持多种存储引擎和查询速度快的数据库管理系统。MySQL具有关系数据库的特征,基本可以反映出关系数据库的特性。   第二种方案选择MongoDB的原因:MongoDB是分布式文档存储数据库,它的特点是高性能、易部署、易使用,存储数据非常方便。它支持的数据结构非常松散,是类似JSON的BSON格式,因此可以存储比较复杂的数据类型。MongoDB的文档模型自由灵活,可以让你在开发过程中畅顺无比。对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如。MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,完全可以满足Web2.0和移动互联网的数据存储需求,其开箱即用的特性也大大降低了中小型网站的运维成本。   第三种方案选择Hadoop的原因:Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:   (1)高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。   (2)高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。   (3)高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。   (4)高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。   (5)低成本:Hadoop是开源的,项目的软件成本因此会大大降低。   2.3 解决问题关键点   针对以上三种解决方案对处理海量的日志信息共同特征,解决海量日志存取主要解决以下几个问题:   (1)高并发读写:现今的网站都是实时的生成动态页面,及时提供动态信息,所以数据库的并发负载很高。尤其是电子商务网站,每秒可以是上百万的请求。   (2)海量数据的高效存储与访问:高效的解决海量数据的读取是最核心的问题之一。对海里数据而言,如果数据存储速度较慢,就会造成网络堵塞甚至网络瘫痪。如果数据库的查询性能较低,就不能及时满足用户查询需求。   (3)高扩展性与可用性:在增加较少硬件成本下,较大提高软件的性能与负载能力,保证其扩展性是可行的

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档