Flume 海量日志收集利器
关于日志收集
服务器日志收集
- 服务器日志是大数据系统中最主要的数据来源之一
- 服务器日志可能包含的信息
- 访问信息
- 系统信息
- 其他业务信息
- 基于服务器日志的应用
- 业务仪表盘:PV、UV等
- 线上查错:错误日志查询
- 系统监控:调用链、接口访问统计等
- 其他数据应用
- 服务器日志的特点:
- 不间断,流式产生
- 数据量大,信息量大
- 源头分散
日志采集系统的一般架构
日志采集系统的设计要求
- 系统可用性:采集系统自身的健壮性
- 可扩展性:可以随着应用系统的规模及数据量的增加而线性扩展
- 可靠性:不会丢失数据
- 灵活性:支持多种数据源;支持多种处理方式;支持多种采集目的地;支持对数据的预处理
Flume简介
是什么?
一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。Cloudera公司出品。
角色
版本
- Flume OG(original generation,2009年7月):分布式日志收集系统,有Master概念,依赖于Zookeeper,分为agent,collector,storage三种角色
- Flume NG(next generation,2011年10月):代码重构,功能精简,去掉master,collector角色,专注数据的收集与传递
Flume组成、安装与配置
组成
Flume Flow:
- Flow: 数据采集流程
- Event: 消息处理的最小单位, 带有一个可选的消息头。实际中event粒度一般较小,降低消息传送失败的成本。 大小由source端决定。
- Agent: 一个独立的Flume进程,包含组件Source、 Channel、 Sink
- Source: 以event为单位接收信息,并确保信息被推送(push)到channel
- Channel: 缓存信息, 确