视频地址:
B站视频地址:ELK和Kafka是怎么就玩在一起成了日志采集解决方案
公众号视频地址:ELK和Kafka是怎么就玩在一起成了日志采集解决方案
知乎视频地址:ELK和Kafka是怎么就玩在一起成了日志采集解决方案
视频文字版
今天呢我就带来了一期视频,主要就是讲ELK和Kafka之间的通讯关系通过对一张通讯图,和一些操作命令,让我们能更深入的去理解ELK在日志采集过程当中以及Kafka在消息队列分发过程当中,它们是如何进行配置使用的,以及它们之间的通讯机制希望对您的学习有所帮助,谢谢!
我们的目标是一台主机主机上的服务会产生日志,例如/var/log目录下面会不断产生各种日志记录我们把这个采集范围称为日志采集源这时候我们把ELK的文件采集器filebeat部署到这台主机上,让它实时监测并增量采集最新的日志记录Filebeat可以给ELK家族的Elasticsearch搜索引擎直接推送采集日志也可以给ELK另外一个日志管道工具Logstash直接推送采集日志最关键的一步是filebeat可以将日志作为消息直接推送给Kafka集群。
我们就通过命令操作演示,更具体的看看它到底是怎么配置的 首先通过pwd命令,查看一下filebeat所在的目录,我的安装目录在/opt/filebeat目录下然后我们再用ls命令查看一下目录下面的文件,找到filebeat的配置文件filebeat.yml。
接着我们用vi命令编辑并查看filebeat.yml文件我们用output关键字,搜索filebeat采集输出的配置,通过n键匹配,我们找到了第一个配置点:Elastisearch输出好,我们可以看到已经被#注掉的Elastisearch,证明filebeat采集到数据不会输出给Elasticsearch。同时可以看到Elasticsearch接收地址是node1,端口是9200。 好!接着继续按n键搜索下一个输出,这时候我们找到了第二个配置点:Logstash输出我们同样可以看到已经被#注掉的Logstash,证明filebeat采集到数据不会推给logstash,同时可以看到Logstash的接收地址:node1,端口5044Ok,我们接着继续按n键搜索最后一个数据,这时候我们找到了最后一个输出点:Kafka输出这次Kafka的输出没有被注释掉,证明filebeat采集到的数据一定会输出给Kafka同时我们看到接收数据的Kafka集群是由三台机器组成node2、node3、node4,端口都是9092推送给Kafka的topic是testT3
通过命令演示中的配置,让我们寻求一种最合理的日志管道传输解决方案,首先filebeat将数据推送给Kafka集群,这样可以形成一个大吞吐承载力的数据缓冲区,而且由Kafka可以接收更多的filebeat采集点接着Logstash作为Kafka的消费者客户端订阅testT3 Topic,Logstash具备了各种过滤器,编解码器,进行数据清洗,可以为下一阶段的输出提供更高质量的日志数据最后Logstash将日志数据写入elasticsearch集群的索引当中,完成日志的最终落地。