关于框架的选择

在google上搜索了一番,最终决定参考有赞的日志平台框架。利用了Flume NG(一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中)来进行数据收集,Kafka(用作缓存传输,这里不再赘述功能),最后,可选择数据分析工具,如Storm(实时处理),Hadoop(离线处理),ElasticSearch(日志分析的利器,具体得问小博了)。

关于功能的实现

这里有点蛋疼,服务器目前只有一套,只能先凑合着用了。

首先是Flume,每台服务器上可配置一个agent,一个agent可以有多个数据源(sources),多个渠道(channels),多个接收者(sinks)。
数据源:我这里的需求是日志文件,当然也可以有别的数据来源,不作具体说明了。
接收者:就是kafka的broker了,每个broker对应一个topic,我打算让一个数据源对应n个渠道和n个接收者(渠道和接收者是1对1的关系,好像也只能是1对1的关系)。
这里做个小结:

其次是Kafka,可以配置多个broker,谁知服务器内存不够用了,暂且只配了一个broker来用,心碎。关于Kafka的配置,官方文档写的很清楚,broker的配置必须与Flume中的sinks配置相对应。

最后是日志分析模块,目前还没选定分析的框架,先不写啦,以后补上。

有赞的日志平台总体框架图如下:
GitHub set up