filebeat的原理
Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出
Filebeat结构:由两个组件构成,分别是inputs(输入)和harvesters(收集器),这些组件一起工作来跟踪文件并将事件数据发送到您指定的输出,harvester负责读取单个文件的内容。harvester逐行读取每个文件,并将内容发送到输出。为每个文件启动一个harvester。harvester负责打开和关闭文件,这意味着文件描述符在harvester运行时保持打开状态。如果在收集文件时删除或重命名文件,Filebeat将继续读取该文件。这样做的副作用是,磁盘上的空间一直保留到harvester关闭。默认情况下,Filebeat保持文件打开,直到达到close_inactive
Kafka简介
Kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。既然是消息队列,那么Kafka
也就拥有消息队列的相应的特性了
kafka消息队列的好处
应用解耦
缓冲
流量削峰
异步处理
zookeeper简介
它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
相当于 文件系统+通知机制
搭建Filebeat+zookeeper+kafka+ELK
主机名 | ip | 系统 | 组件 |
---|---|---|---|
node1 | 192.168.100.142 | centos7 | Elasticsearch,Elasticsearch-head, Kiabana |
node2 | 192.168.100.140 | centos7 | Elasticsearch,Elasticsearch-head |
apache | 192.168.100.141 | centos7 | httpd ,logstash, |
filebeat1 | 192.168.100.145 | centos7 | zookeeper,kafka |
filebeat2 | 192.168.100.134 | centos7 | zookeeper,kafka |
filebeat3 | 192.168.100.144 | centos7 | zookeeper,kafka |
这次实验是延着在上一次 ELK实验做下去的,所以部署ELK我就不演示了,有需要的可以去看我上一篇博客,里面详细介绍ELK以及部署步骤
言归正传,让我们开始本次实验
1.安装zookeeper kafka(在fiebeat1 - 3都要操作)
(1)解压安装zookeeper软甲包
[root@bogon opt]# tar zxvf apache-zookeeper-3.5.7-bin.tar.gz
[root@bogon opt]# mv apache-zookeeper-3.5.7-bin /usr/local/zookeeper-3.5.7
[root@bogon opt]# cd /usr/local/zookeeper-3.5.7/
[root@bogon conf]# cp zoo_sample.cfg zoo.cfg
[root@bogon conf]# vim zoo.cfg
[root@bogon conf]# cd ..
[root@bogon zookeeper-3.5.7]# mkdir data logs
[root@bogon zookeeper-3.5.7]# echo 1 > data/myid
## 给每个机器指定对应的节点号
(2)启动zookeeper
查看三个节点zookeeper状态
(2).安装 kafka(在fiebeat1 - 3都要操作)
[root@bogon bin]# cd /opt/
[root@bogon opt]# tar zxvf kafka_2.13-2.7.1.tgz
[root@bogon opt]# mv kafka_2.13-2.7.1 /usr/local/kafka
(3)修改配置文件
[root@bogon opt]# cd /usr/local/kafka/
[root@bogon kafka]# cd config/
[root@bogon config]# vim server.properties
(4)将相关命令加入到系统环境当中
[root@bogon kafka]# vim /etc/profile
[root@bogon kafka]# source /etc/profile
(5)启用kafka
创建topic
(192.168.100.145)
测试topic
发布消息(192.168.100.145)
消费消息(192.168.100.145)