天天看點

SpringBoot+Kafka+ELK收集日志搭建可視化架構—02.搭建Kafka叢集3. 安裝Kafka

SpringBoot+Kafka+ELK收集日志搭建可視化架構—02.搭建Kafka叢集

準備搭建所需壓縮包:

1.jdk-1.8

2.zookeeper-3.4.10

3.kafka-2.11

準備搭建叢集的三台伺服器

三台伺服器:

192.168.133.167
192.168.133.168
192.168.133.169
           

1.安裝jdk

解壓jdk
[[email protected] opt]# tar -zxvf jdk8.tar.gz 
[[email protected] opt]# ll
total 209100
drwxr-xr-x. 8   10  143       255 Mar 28  2018 jdk1.8.0_171
-rw-r--r--. 1 root root 214117177 Jul 10  2020 jdk8.tar.gz
[[email protected] opt]# 
修改 /etc/profile檔案末尾添加以下幾句
[[email protected] ~]# vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_171/
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
#儲存退出後,重新整理配置檔案  檢視jdk版本
[[email protected] opt]# source /etc/profile 
[[email protected] opt]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
           

2.安裝zookeeper叢集

kafka是依賴于zookeeper注冊中心的一款分布式消息對列,是以需要有zookeeper單機或者叢集環境。一般不建議直接使用 Kafka 自帶的 Zookeeper 建立 zk 叢集,這裡我們使用獨立的 zk 叢集。

下載下傳zookeeper分别上傳到三台主機,下面配置192.168.133.167主機:

http://mirror.bit.edu.cn/apache/zookeeper/
本文使用的是http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/
           

上傳zookeeper-3.4.10到/opt目錄,使用如下指令解壓檔案。

#解壓檔案
[[email protected] opt]#  tar -zxvf zookeeper-3.4.10.tar.gz
  #重命名
[[email protected] opt]#  mv zookeeper-3.4.10   zookeeper
進入目錄建立兩個檔案夾存放快照日志和事物日志
[[email protected] zookeeper]#mkdir data  datalog 
[[email protected] zookeeper]#mkdir
           

修改配置檔案

進入conf目錄
[[email protected] zookeeper]# cd conf
複制一份預設的zoo_sample.cfg檔案修改檔案名為zoo.cfg
[[email protected] conf]# cp zoo_sample.cfg  zoo.cfg 
           
SpringBoot+Kafka+ELK收集日志搭建可視化架構—02.搭建Kafka叢集3. 安裝Kafka
接下來修改zoo.cfg 檔案添加如下圖所示:
[[email protected] conf]# vi zoo.cfg 
           
SpringBoot+Kafka+ELK收集日志搭建可視化架構—02.搭建Kafka叢集3. 安裝Kafka

#tickTime:是 Zookeeper 伺服器之間或用戶端與伺服器之間維持心跳的時間間隔,每個 tickTime 時間就會發送一個心跳。。

#initLimit:用來配置 Zookeeper 接受用戶端(Zookeeper 伺服器叢集中連接配接到 Leader 的 Follower 伺服器叢集中隻會有一個Leader,Follower 會有多個)初始化連接配接時最長能忍受多少個心跳時間間隔數。當已經超過

5個心跳的時間(也就是 tickTime)長度後 Zookeeper

伺服器還沒有收到用戶端的傳回資訊,那麼表明這個用戶端連接配接失敗。總的時間長度就是 52000=10 秒。

#syncLimit:用來辨別 Leader 與Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是52000=10秒

#dataDir:快照日志的存儲路徑。

#dataLogDir:事物日志的存儲路徑,如果不配置這個那麼事物日志會預設存儲到dataDir制定的目錄,當zk吞吐量較大的時候,産生的事物日志、快照日志太多會嚴重影響zk的性能。

#clientPort:是用戶端連接配接 Zookeeper 伺服器的端口,Zookeeper 會監聽這個端口,接受用戶端的通路請求。

進入建立的data目錄下建立myid檔案

[[email protected] conf]# cd ../data
[[email protected] data]# vi myid 
内容為1    
#後面的168和169機器myid檔案内容改為 2 和3
           

配置192.168.133.168和192.168.133.169主機步驟同上:

啟動Zk服務

#進入到zookeeper的bin目錄下
#啟動服務
./zkServer.sh start
#啟動成功後的資訊:
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/ ../conf/zoo.cfg
Starting zookeeper ... STARTED

#檢查伺服器狀态
./zkServer.sh status
#下面的狀态為啟動成功。
ZooKeeper JMX enabled by default
Using config:  /opt/zookeeper/bin/ ../conf/zoo.cfg
Mode: follower      
#Mode有兩種類型:leader和follower,leader代表上司(主節點),follower代表下屬(備節點)
#zk叢集一般隻有一個leader,follower有多個,主一般是相應用戶端的讀寫請求,而從主同步資料,當主挂掉之後就會從follower裡投票選舉一個leader出來。

           

此時zookeeper叢集就成功搭建完成了,下面開始搭建kafka叢集。

3. 安裝Kafka

上傳壓縮檔案到/opt目錄下

使用以下指令進行解壓
tar -zxvf kafka_2.11-1.0.0.tgz

修改解壓後的檔案夾名字
mv kafka_2.11-1.0.0   kafka
進入該檔案夾 建立kafka消息目錄
mkdir kafkalogs
           

接下來修改kafka配置檔案

#進入到config目錄
cd /opt/kafka/config/
可以看到此目錄下有關于zookeeper的一些檔案,這是kafka内置的zookeeper叢集,可以使用它來直接啟動,但建議使用獨立的zookeeper叢集。

           

修改 server.properties一下幾項

broker.id=1   #後面的每台伺服器在上面需要修改一下 依次為 1 、2 、3
listeners=PLAINTEXT://192.168.133.167:9092    #後面的機器修改為各自的ip
log.dirs=/opt/kafka/kafkalogs
zookeeper.connect=192.168.133.167:2182,192.168.133.168:2183,192.168.133.167:2184      #zk叢集位址
           

配置192.168.133.168和192.168.133.169主機步驟同上:

此時Kafka叢集就成功搭建完成了,啟動Kafka叢集并測試。

#從啟動Kafka叢集(3台都需要啟動)
#分别進入三台主機的kafka的根目錄 
cd /opt/kafka
#啟動服務
./bin/kafka-server-start.sh -daemon  /opt/kafka/config/server.properties 
# 啟動指令中的 -daemon 表示以守護程序的方式啟動.
           

測試kafka

建立主題:

#建立一個kafak_test主題,分區數為3,備份數為3
#在kafka根目錄執行下面指令
./bin/kafka-topics.sh --create --zookeeper 192.168.133.167:2182 --replication-factor 3 --partitions 3 --topic kafak_test
           

啟動生産者:

#kafka根目錄執行,啟動一個生産者
./bin/kafka-console-producer.sh --broker-list 192.168.133.167:9092 --topic kafak_test
           

不要關閉生産者視窗,再打開一個新視窗,進入到kafka根目錄,啟動消費者:

#啟動消費者
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.133.167:9092,192.168.133.168:9092,192.168.133.169:9092 --topic test --from-beginning
           

在生産者視窗随意發送一條消息,檢視消費者是否接收成功。

參考與:https://www.cnblogs.com/bixiaoyu/p/9487539.html