美文网首页
基于Flume的日志收集系统架构和设计

基于Flume的日志收集系统架构和设计

作者: Jerome_Jiang | 来源:发表于2017-11-10 17:41 被阅读205次

1 日志收集系统简介
日志收集是大数据的基石。

许多公司的业务平台每天都会产生大量的日志数据。收集业务日志数据,供离线和在线的分析系统使用,正是日志收集系统的要做的事情。高可用性,高可靠性和可扩展性是日志收集系统所具有的基本特征。

目前常用的开源日志收集系统有Flume, Scribe等。Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,目前已经是Apache的一个子项目。Scribe是Facebook开源的日志收集系统,它为日志的分布式收集,统一处理提供一个可扩展的,高容错的简单方案。

2 常用的开源日志收集系统对比

下面将对常见的开源日志收集系统Flume和Scribe的各方面进行对比。对比中Flume将主要采用Apache下的Flume-NG为参考对象。同时,我们将常用的日志收集系统分为三层(Agent层,Collector层和Store层)来进行对比。
对比项 Flume-NG Scribe
使用语言 Java c/c++
容错性 Agent和Collector间,Collector和Store间都有容错性,且提供三种级别的可靠性保证; Agent和Collector间, Collector和Store之间有容错性;
负载均衡 Agent和Collector间,Collector和Store间有LoadBalance和Failover两种模式 无
可扩展性 好 好
Agent丰富程度 提供丰富的Agent,包括avro/thrift socket, text, tail等 主要是thrift端口
Store丰富程度 可以直接写hdfs, text, console, tcp;写hdfs时支持对text和sequence的压缩; 提供buffer, network, file(hdfs, text)等
代码结构 系统框架好,模块分明,易于开发 代码简单

3 日志收集系统基础架构

image.png

4 架构设计考虑
下面将从可用性,可靠性,可扩展性和兼容性等方面,对上述的架构做细致的解析。

4.1 可用性(availablity)
对日志收集系统来说,可用性(availablity)指固定周期内系统无故障运行总时间。要想提高系统的可用性,就需要消除系统的单点,提高系统的冗余度。下面来看看美团的日志收集系统在可用性方面的考虑。

4.1.1 Agent死掉
Agent死掉分为两种情况:机器死机或者Agent进程死掉。

对于机器死机的情况来说,由于产生日志的进程也同样会死掉,所以不会再产生新的日志,不存在不提供服务的情况。

对于Agent进程死掉的情况来说,确实会降低系统的可用性。对此,我们有下面三种方式来提高系统的可用性。首先,所有的Agent在supervise的方式下启动,如果进程死掉会被系统立即重启,以提供服务。其次,对所有的Agent进行存活监控,发现Agent死掉立即报警。最后,对于非常重要的日志,建议应用直接将日志写磁盘,Agent使用spooldir的方式获得最新的日志。

4.1.2 Collector死掉
由于中心服务器提供的是对等的且无差别的服务,且Agent访问Collector做了LoadBalance和重试机制。所以当某个Collector无法提供服务时,Agent的重试策略会将数据发送到其它可用的Collector上面。所以整个服务不受影响。

相关文章

  • 基于Flume的日志收集系统架构和设计

    1 日志收集系统简介日志收集是大数据的基石。 许多公司的业务平台每天都会产生大量的日志数据。收集业务日志数据,供离...

  • 基于Flume的日志收集系统(一)架构和设计

    转自http://www.aboutyun.com/thread-8317-1-1.html 问题导读: 1.Fl...

  • flume

    Flume Flume是Cloudera提供的一个分布式、可靠、和高可用的海量日志采集、聚合和传输的日志收集系统,...

  • Flume - 初识

    Flume - 初识 一、基本架构 Flume-NG 采用三层架构设计:收集(Source)、暂存(channel...

  • 03 hadoop 日志收集

    0 目标 收集系统 docker 137个服务日志中错误日志, 根据服务名,跟日期显示 1 flume 收集日志到...

  • Flume实践

    Flume简介 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume...

  • filtbeat Pod OOM

    背景:容器化之前已经有一套es+flume+kibana日志收集系统,由于flume agent采集日志时候消耗的...

  • 统计系统

    spark+flume+hadoop flume将日志收集到HDFS文件系统中,spark进行统计计算

  • 数仓--Flume-1.9.0环境部署

    背景 需要收集公司的app/web端埋点日志,需要搭建一套日志收集系统 采用 apache-flume-1.9.0...

  • Nginx=>Flume=>Kafka 流程总结

    nginx=>flume=>kafka 编写flume 日志收集文件 nginx日志access.log====>...

网友评论

      本文标题:基于Flume的日志收集系统架构和设计

      本文链接:https://www.haomeiwen.com/subject/kkximxtx.html