filebeat利用kafka进行日志实时传输

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了filebeat利用kafka进行日志实时传输相关的知识,希望对你有一定的参考价值。

参考技术A 选择安装目录:例如安装在/usr/local/或者/opt/下都可以。

创建一个软链接:

filebeat的配置很简单,只需要指定input和output就可以了。

由于kafka server高低版本的客户端API区别较大,因此推荐同时使用高版本的filebeat和kafka server。 注意 高版本的filebeat配置使用低版本的kafka server会出现kafka server接受不到消息的情况。这里我使用的kafka server版本是:2.12-0.11.0.3,可参考 快速搭建kafka

编辑filebeat安装目录下 filebeat.yml 文件:

配置Filebeat inputs:

上面 /opt/test/*.log 是我要传输的日志,根据实际情况改成你自己的值。
配置Filebeat outputs:

"111.11.1.243:9092" 是我的单机kafka broker,如果你是kafka集群,请用 , 分隔。 test 是kafka topic,请改成你自己实际情况的值。另外以下这段需要删除:

因为我并没有用到Elasticsearch,所以有多个输出在启动filebeat时会报错。到这里filebeat配置kafka就完成了,是不是很简单,让我们启动它测试一下。

启动,进入filebeat的安装目录:

查看是否启动:

很好,已经启动了。如果没有启动,请查看启动日志文件nohup.out。
停止:

随机生成日志脚本:

执行这段python脚本,开启一个kafka消费者如果成功消费日志消息:

哈哈,大功告成。 注 上面这段脚本要适时手动停止,因为它是个死循环,如果忘记手动停止那么就杯具了,我就是这样把机器写宕机的。

以上是关于filebeat利用kafka进行日志实时传输的主要内容,如果未能解决你的问题,请参考以下文章

日志实时收集之FileBeat+Kafka

filebeat到kafka日志无法传输

storm项目架构分析

ETL工具之日志采集filebeat+logstash

使用redis,kafka做为缓存来收集日志

K8s容器日志实时收集FileBeat+ES+Kibana