• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 信息科技 > 正文

    构建基于FlumeNG的海量日志收集系统

    时间:2020-09-18 07:58:00 来源:达达文档网 本文已影响 达达文档网手机站


    打开文本图片集

    摘 要:随着互联网技术的快速发展和Web2.0技术的逐渐成熟,各种应用程序在运行过程中所产生的日志的数量呈爆炸式增长。如何高效的收集海量的日志数据,成为了一个亟需解决的难题。本研究基于FlumeNG、Hadoop等开源框架设计并实现了一套完善的海量日志数据的实时收集系统。

    关键词:FlumeNG;Hadoop;日志收集

    中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2013) 14-0000-01

    日志的收集是了解和分析应用程序运行情况的必要前提[1]。通过使用FlumeNG等技术,可以实时的、可靠的收集网络应用程序所产生的海量日志数据。

    一、FlumeNG

    FlumeNG是分布式的、可靠的、高可用的、高性能的开源日志收集系统[2]。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,HDFS等)上[3],以便于进行集中统计分析处理。

    二、日志收集系统的架构

    Event是FlumeNG中所传输的基本单元。客户端应用程序需要将产生的日志数据封装成FlumeNG所能识别的Event对象。FlumeNG就是以Event的方式将数据从日志源头传送到最终的存储目的地。Agent是FlumeNG配置管理的基本运行组件。一个Agent是包括Sources,Channels,Sinks和其他组件的单独JVM运行实体。其中,Sources负责接送客户端应用程序所产生的Event,并将这些Events以事务的方式来批量的添加到一个或者多个Channels中。系统内置的的Sources包括:Syslog、Avro、Exec等。Channel位于Source和Sink之间,用于缓存由Source进来的Events,提高系统的可靠性和吞吐量。MemoryChannel和FileChannel是使用最多的两种Channel。其中MemoryChannel的吞吐量要高于FileChannel,但是不提高Event的持久化保证即在断电等故障发生时会造成Event的丢失,而FileChannel提供了Event的持久化机制,从而保证了Event处理的可靠性。Sink负责从Channel中批量的读取Event,然后传输到下一个Agent或者最终的存储目的地。当Sink操作成功之后,Events会被从Channel中删除掉。FlumeNG的数据流模型如下:

    三、日志收集系统的实现

    为了保证整个系统的可靠性和容错性,FlumeNG采用FailOver的架构形式来进行搭建。每个应用程序所在的服务器上都运行着一个flumeMainClientAgent程序,同时在另外一台备份机上运行着相同配置的flumeBackupClientAgent程序。当flumeMainClientAgent程序发生故障时,客户端的数据流可以自动透明的切换到flumeBackupClientAgent端。flumeMainClient或者flumeBackupClient收集到的数据会进一步发送到远程flumeMainCollectorAgent。和flumeMainClientAgent一样,flumeMainCollectorAgent也有一个相同配置的flumeBackupCollectorAgent运行在另外一台备份机上。当flumeMainCollector程序出现异常时,flumeMainClient或者flumeBackupClient的数据流同样会自动的透明的切换到flumeBackupCollectorAgent端。flumeMainClient和flumeMainCollector之间是通过Avro的方式进行相连。此外,所有的Agent中的Channel都采用FileChannel来实现,从而保证了当Agent程序出现异常时也不会发生消息丢失的情况。FlumeNG在本研究中的具体架构实现如图2所示:

    四、结论

    本研究在对现有的数据收集解决方案进行分析的基础之上,使用FlumeNG设计并实现了针对网络应用程序的海量日志数据的收集系统。该系统具有高性能、高吞吐量以及高可扩展性的特点,通过增加服务器结点的数量即可应对更大的数据量。此外,该系统还支持对收集到的日志数据进行实时处理和离线处理。

    参考文献:

    [1]钱秀槟,刘国伟,李锦川.Web应用日志分析系统分析与设计[J].计算机安全,2011(06).

    [2]https://cwiki.apache.org/FLUME/flume-ng.html.

    [3]ApacheHadoop[EB/OL].http://hadoop.apache.org,2010,03,25.

    [作者简介]李志刚(1966-)男,教授,研究方向:计算机应用技术;张鑫(1988-),男,硕士研究生,研究方向:计算机应用技术;赵青娟(1989-),女,硕士研究生,研究方向:计算机应用技术;纪占林(1974-)男,副教授,研究方向:计算机应用技术。

    相关热词搜索: 海量 构建 收集 系统 日志

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网