filebeat+kafka+logstash部署案例

组件介绍:

Filebeat负责从web服务器上实时抓取数据,当log文件发生变化时,将文件内容吐给kafka。

Kafka是消息队列,主要作用是在filebeat和logstash之间做缓存,避免因写入logstash的数据量过大,导致数据丢失。

Zookeeper是kafka的分发系统,他负责维护整个kafka集群的负载均衡,在部署的时候,每个kafka节点上都要单独安装zookeeper,同时要保证zookeeper之间能够互相通信(2181端口)。

Logstash是日志处理器,也是整个elk系统的核心。负责来自kafka的日志处理,然后把处理过的日志吐给elasticsearch。需要注意的是,经logstash处理过的日志都是json格式的。

案例:用filebeat监控日志文件(test.log),并将日志数据发送到kafka中,logstash从kafka中读取数据

1.启动zookeeper和kafka :以守护进程方式启动

./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

./bin/kafka-server-start.sh -daemon config/server.properties

2.配置logstash
vim test.conf
filebeat+kafka+logstash部署案例_第1张图片

测试配置文件是否正确:
bin/logstash -f test.conf -t
出现“configure ok!”的提示,即配置成功,如果没有,则去查看日志,看下是哪里出的问题。没有问题,就可以启动logstash。

3.启动logstash
bin/logstash -f test.conf

4.配置filebeat
vim filebeat.yml
filebeat+kafka+logstash部署案例_第2张图片
output : 默认的topic为beats,也可以指定
filebeat+kafka+logstash部署案例_第3张图片
注意每一行的空格,空格多少可能影响启动

5.启动filebeat
./filebeat -e -c filebeat.yml

6.测试
在test.log中写入新的数据,观察logstash控制台是否有数据输出
在test.log目录下,执行:
echo “99999999999” >> test.log
logstash控制台如下:
在这里插入图片描述

你可能感兴趣的:(elk)