日志收集分析系统架构
一.部署架构
日志收集系统一般包括如图所示三层。Web服务器层,日志收集层,日志存储层。Web服务器层是日志的来源,一般部署web应用供用户访问,产生日志,该节点上一般需要部署日志收集程序的agent。日志收集层手机web服务器产生的日志传输给日志存储层,存储层一般使用分布式文件系统HDFS,日志可以存储在hdfs上或者hbase上。
以scribe作为日志收集系统架构,scribe分为scribe agent和scribe server
以kafka作为日志收集系统架构,kafka分为:producer,kafka server,consumer
以flume作为日志收集系统的架构
三种日志收集服务对比
Scribe |
Kafka |
Flume |
|
开源公司 |
|
|
Cloudera |
开源时间 |
08年10月 |
10年12月 |
09年7月 |
实现语言 |
C/C++ |
SCALA |
JAVA |
框架 |
Push/push |
Push/pull |
Push/push |
容错性 |
Collector和store之间有容错机制,而agent和collector之间的容错机制需要用户自己来实现 |
Agent可通过自动识别机制获取可用的collector。Store自己保存已经获取数据的偏移量,一旦collector出现故障可根据偏移量继续获取数据, |
Agent和collector,collector和store之间均有容错机制,并且提供了三种级别的可容错性保证。 |
负载均衡 |
无 |
Zookeeper |
Zookeeper |
可扩展性 |
好 |
好 |
好 |
Agent |
Thrift |
用户根据kafka提供的low-level和high-level api自己实现 |
提供了各种丰富的agent |
Collector |
实际上是一个thrift server |
直接支持hdfs |
直接支持hdfs |
Store |
直接支持hdfs |
直接支持hdfs |
直接支持hdfs |
总体评价 |
设计简单,易于使用,但容错和负载均衡方面不够好。且资料较少 |
采用push/pull架构,可以重复获取数据,但是产品较新,稳定性需要验证 |
Very good |
2. 日志分析常使用的计算框架
离线计算:mapreduce,hive,pig
近实时计算:spark,impala
实时计算:storm
时间: 2024-10-15 13:38:43