zookeeper+kafka+filebeat部署

zookeeper+kafka+filebeat部署

 

                                                              架构图

 

                                             

 

 

首先关闭防火墙,seliunx

三台机器:

[root@bogon ~]# systemctl stop firewalld

[root@bogon ~]# setenforce 0

然后把主机名修改成 kafka01    #依次递增

之后做一下端口映射:

192.168.253.225 kafka01

192.168.253.226 kafka02

192.168.253.227 kafka03

然后测试是否能ping通

ping  kafka01

(请记住每一台都要做端口映射)

把前期工作做好!

 

部署zookeeper

 

zookeeper也是需要jdk环境的所以先安装jdk环境,

上传jdk包:

安装jdk:

rpm -ivh  jdk-8u20-linux-x64.rpm


安装完之后检查它的版本号:

 

[root@kafka01 ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)  

 然后上传zookeeper 包,安装:

解压 tar zxf zookeeper-3.4.14.tar.gz

然后可以给它放在本地目录下:

[root@kafka01 ~]# mv zookeeper-3.4.14 /usr/local/zookeeper

安装好之后进入它的配置文件:

[root@kafka01 zookeeper]# cd conf/
[root@kafka01 conf]# cp zoo_sample.cfg zoo.cfg 

[root@kafka01 conf]# vim zoo.cfg

 修改复制出来那个  vim zoo.cfg
修改dataDir=/usr/local/zookeeper/zkdata 目录为自己定义的

  

 

然后在最末尾行添加三台主机ip:

 

server.1=192.168.11.139:2888:3888                  #服务器及其编号,服务器IP地址,通信端口,选举端
server.2=192.168.11.140:2888:3888                 #服务器及其编号,服务器IP地址,通信端口,选举端口
server.3=192.168.11.141:2888:3888                #服务器及其编号,服务器IP地址,通信端口,选举端口

 

 

 创建myid文件 (里面的数据是依次递增的)

例如:

echo “1” > /usr/local/zookeeper/zkdata/myid

然后,其他两台同理以上操作。

    [root@kafka01 bin]# pwd
    /usr/local/zookeeper/bin

然后开启zookeeper ./zkServer.sh start
查看状况: ./zkServer.sh status
开启第一台可能会报错 然后开启第二台,在查看第一台状态就不会报错了
之所以会报错,是开一台没法选举,所以会报错。

  

 

kafka部署

它也是需要jdk环境 上面已经安装过了就不要安装了。

然后上传kafka 包:

解压: tar zxf kafka_2.11-2.2.0.tgz

也给它放在本地目录:

[root@kafka01 ~]# mv kafka_2.11-2.2.0 /usr/local/kafka/

[root@kafka01 ~]# cd /usr/local/kafka/config/

然后配置文件:server.properties 修改

修改 broker.id=0     #三台依次递增

修改 advertised.listeners=PLAINTEXT://kafka01:9092       #你的主机名字三台依次递增
开启 kafka

    [root@kafka01 bin]# pwd
    /usr/local/kafka/bin

    [root@kafka01 bin]# ./kafka-server-start.sh -daemon ../config/server.properties  (后台启动)

同步一下时间 yum -y install ntpdate

ntpdate 2. cn. pool. ntp.org

后面两台机器同理。

 

 

 测试zookeeper 和 kafka 是否能同步

 

测试:

创建生产者

[root@kafka01 bin]# pwd 

 /usr/local/kafka/bin

./kafka-topics.sh --create --zookeeper 192.168.253.225:2181 --replication-factor 2 --partitions 3 --topic  zs   <=(生产者的名字)

查看创建的生产者:

[root@kafka01 bin]# pwd 

 /usr/local/kafka/bin

./kafka-topics.sh --list --zookeeper 192.168.253.225:2181

模拟生产者:

 

[root@kafka01 bin]# pwd 


 /usr/local/kafka/bin


./kafka-console-producer.sh --broker-list 192.168.253.225:9092 --topic zs   <=(生产者的名字) 

创建消费者

[root@kafka01 bin]# pwd 

 /usr/local/kafka/bin

./kafka-console-consumer.sh --bootstrap-server 192.168.253.226:9092 --topic  zs<=(生产者的名字)--from-beginning

 

 然后 测试 生产者 生产的数据  消费者是否能接收到。

 

安装filebeat

 

 

Filebeat安装 创建yum元
vim/etc/yum.repos.d
vim filebeat.repo

[filebeat-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

  

然后用yum 安装 yum -y install filebeta

 

[root@kafka01 filebeat]# pwd
/etc/filebeat

 

然后配置 vim /etc//etc/filebeat.yml

修改内容

 

enabled: true   #开启

paths:

- /var/log/ 例如:messages

添加 :

output.kafka:   

   enbled: true   #开启

   hosts: ["192.168.253.225:9092","192.168.253.231","192.168.253.232"]   三台主机ip

   topic: messages 

 

开启filebeta

[root@kafka01 filebeat]# systemctl start filebeat

其他两台同理。

 

创建 topic 脚本

[root@kafka01 bin]# pwd
/usr/local/kafka/bin
[root@kafka01 bin]# cat kafka-topic-create.sh 
#! /bin/bash
readp"请输入你想创建的topic:"topic
/kafka-topics.sh --create --zookeeper 192. 168.253.225:2181 -- replication-factor 3 --partitions 3 --topic $topic
/kafka-topics.sh --list --zookeeper 192.168.253.225:2181

 

 logstash .conf配置

 

进入conf.d目录创建。Conf文件 例如: messages.conf

先去kafka创建topic

例如:
收集messages的日志
[root@kafka02 conf.d]# cat messages.conf input{ kafka{ bootstrap_servers => ["192.168.253.225:9092,192.168.253.231:9092,192.168.253.232:9092"] group_id => "logstash" topics => "messages" consumer_threads => 5 } } output{ elasticsearch{ hosts => "192.168.253.225:9200" index => "messages-%{+YYYY-MM-dd}" } }

  

开启 systemctl start logstash.service

如果有报错可以查看日志

 

kibana 展示

进入Kibana  ui页面

创建索引查看。

页面展示:

 

 

 

 

想看更多内容,记得关注我哈!

 

 

欢迎进群讨论:QQ群294668383(有意向可以添加)

posted @ 2020-03-10 09:58  AI_运维_攻城狮  阅读(365)  评论(0)    收藏  举报