简介
由于我们公司需要对各个业务的数据进行采集,所以我们需要搭建一个数据采集平台。原本的计划是使用大数据比较常见的双层flume+kafka的模型,但是我们公司的后端表示,不希望采用flume的方式采集,因为flume是需要跑在JVM上的,总体加起来可能需要好几百M,打成docker镜像比较麻烦(PS我们的某些业务才几十M),所以我们需要一个比较轻量的收集器。最终我们决定使用Filbeat。
需求
1.首先我们有几百个应用,分布在不同的机器上,我们需要一个日志采集工具,并且我们是需要达成Docker镜像的,所以需要一个比较小的日志采集工具。
2.由于我们的应用比较多,所以如果所有的日志采集都直接连kafka的话,对kafka来说的压力太大,所以希望连接kafka的线程数尽量少。
3.由于公司比较穷,机器的配置不高,磁盘大小希望能节省使用(即不需要的数据就别传进kafka里)。
方案
首先在选择日志采集工具时,我们最终决定使用轻量日志采集工具Filebeat,但是我们的应用非常多直接连接kafka压力非常大,所以我们在中间接了一层logstash用来减少连接kafka的线程数,并且在logstash层我们配置了两台logstash,用来容灾。在其中一台挂掉的情况下,短时间内不影响日志采集。