基于Flume的日志收集系统方案参考

时间:2023-02-02 11:25:40

前言

本文将简单介绍两种基于Flume的日志收集系统可能的架构方案,可根据不同的实际场景参考使用。

方案一

示例图如下:

基于Flume的日志收集系统方案参考

说明:

每个日志源(http上报、日志文件等)对应一个Agent-c用于收集对应日志, 收集来的日志可以流到Agent-s-1或Agent-s-2;

Agent-c的Sink处理器采用轮询负载均衡策略,一方面可以分担压力,另一方面可增加系统可用性,即使一个Agent-s出现故障,系统可正常运行;

最后,Agent-s-1和Agent-s-2的通道处理器配置为分流模式,将不同project的事件分流到不同Channel中,最后交由不同的Sink处理,并存入到对应存储系统中;

以上数据采集层和数据汇总层均支持水平扩展;

方案二

示例图如下:

基于Flume的日志收集系统方案参考

说明:

与方案一不同的是,该方案支持将事件流输出到kafka队列中,实现方式是在Agent-c上配置通道选择器,配置为复制模式,复制一份相同的事件流到其它通道Sink3上,最终输出到kafka队列。

补充

以上图例仅供参考,参考。。。

实际上,由于Source、Channel、SInk等组件都支持自定义实现,所以方案可以非常*,我们可以自定义Sink组件,实现事件写入到本地存储系统的同时,写入到kafka队列中,只有想不到,没有做不到;