概述
Flume是一个分布式,高可用的,高可靠的服务,它能高效的收集、聚合、移动大量的日志数据。
它是一个基于流式数据的、简单、灵活的架构。它有健壮的、容错的、从故障中恢复过来的机制。
它有一个灵活扩展的数据模型,可供在线实时分析使用。
最开始由cloudera开发,后来给了apache。开发语言java。
同类产品
Scribe 是facebook用c/c++开发。已经没有维护了。
Chukwa 最开始由yahoo用java开发,后来给了apache。已经没有维护了。
kafka 一般作为分布式消息系统,起数据缓冲的作用。通常不会用于日志收集。
Flumentd 使用ruby开发的
logstash:ELK中的L
日志收集通常用logstash或者flume
架构图
组件
Source 收集 接入数据。
Channel 聚集 相当于是一个通道,类似于数据的一个缓存池,提供数据临时存放的地方。
Sink 输出 从Channel中读取数据写入到目的地里
多个Agent
多个sink的数据接入到一个source中
一个Source的数据放到多个Channel中,每个Channel对应的Sink有不同的数据落地
每个Agent中的组件构成有向无环图