filebeat+ELK+kafka集群搭建(三:kafka集群部署)

搭建kafka集群

Kafka官方文檔:http://kafka.apache.org

1. 安裝java

??Elasticsearch至少需要Java 8.版本的java,建議使用Oracle JDK 1.8.0_131版(官網(wǎng)建議)。如果沒符合標準,請自行升級。本文只描述新安裝java(由于本次安裝kafka和elasticsearch在一臺服務(wù)器上所以就直接安裝java8)

[root@es-1 ~]# yum install -y java-1.8.0

[root@es-1 ~]# java -version

openjdk version "1.8.0_171"

OpenJDK Runtime Environment (build 1.8.0_171-b10)

OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
2. 下載安裝kafka****(kafka_2.11-1.1.0****)

官方地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka_2.11-1.1.0.tgz

百度云:鏈接:https://pan.baidu.com/s/1yW3h9P9sMvkBJP46mHIr7w 密碼:57e1

3. 上傳、解壓

上傳到/opt/elk目錄

[root@es-1 ~]# cd /opt/elk/

[root@es-1 elk]# ls

kafka_2.11-1.1.0.tgz       

[root@es-1 elk]# tar -xvf kafka_2.11-1.1.0.tgz
4.****相關(guān)介紹

??kafka 采用集群方式部署,測試環(huán)境部署,所以我用兩臺機器模擬出3個節(jié)點的cluster 。kafka 依賴zookeeper,zookeeper 簡稱ZK,已經(jīng)包含在kafka的tar包里,不需要而外下載安裝,為啥要用三個節(jié)點呢?這個是zk的一個選舉leader的特性,官方推薦是奇數(shù)個server,奇數(shù)個最少3個,這樣壞一個還有兩個,可以正常選舉。(官方解釋:對于復(fù)制模式,需要最少三個服務(wù)器,并且強烈建議您有奇數(shù)個服務(wù)器。如果只有兩個服務(wù)器,那么,如果有一個服務(wù)器失敗,則沒有足夠的機器形成多數(shù)法定人數(shù)。兩個服務(wù)器本質(zhì)上不如單個服務(wù)器穩(wěn)定,因為有兩個單點故障。)

由于是集群配置,配置之間幾乎差不多,所以配置好一個,直接scp到其余節(jié)點就ok了,到了其余節(jié)點把關(guān)鍵參數(shù)修改一下就行了。

5. 配置zookeeper
①給zookeeper 創(chuàng)建data 目錄和logs 目錄
[root@es-1 ~]# mkdir /opt/elk/kafka/zookeeper/{data,logs} -p
②創(chuàng)建myid 文件
[root@es-1 ~]# echo 1 > /opt/elk/kafka/zookeeper/data/myid  #集群其他服務(wù)器需要改動
③配置zookeeper配置文件
[root@es-1 ~]# cd /opt/elk/kafka_2.11-1.1.0/config/

[root@es-1 config]# vim zookeeper.properties

#客戶端連接端口


maxClientCnxns=0

#zk存放數(shù)據(jù)的目錄,zk 需要有一個叫做myid的文件也是放到(必須)這個目錄下

dataDir=/opt/elk/kafka/zookeeper/data                 

dataLogDir=/opt/elk/kafka/zookeeper/logs

clientPort=2181

#最大客戶端連接數(shù)

maxClientCnxns=20

#是作為Zookeeper服務(wù)器之間或客戶端與服務(wù)器之間維持心跳的時間間隔

tickTime=2000

#此配置表示,允許follower(相對于Leaderer言的“客戶端”)連接并同步到Leader的初始化連接時間,以tickTime為單位。當(dāng)初始化連接時間超過該值,則表示連接失敗。

initLimit=10

#此配置項表示Leader與Follower之間發(fā)送消息時,請求和應(yīng)答時間長度。如果follower在設(shè)置時間內(nèi)不能與leader通信,那么此follower將會被丟棄。

syncLimit=5

#server.myid=ip:followers_connect to the leader:leader_election # server 是固定的,myid 是需要手動分配,第一個端口是follower是鏈接到leader的端口,第二個是用來選舉leader 用的port

server.1=192.168.205.155:2888:3888

server.2=192.168.205.156:2888:3888

server.3=192.168.205.157:2888:3888

注意:如果有防火墻記得開放相應(yīng)端口

6. 配置kafka
[root@es-1 ~]# cd /opt/elk/kafka_2.11-1.1.0/config/

[root@es-1 config]# vim server.properties

#每個server需要單獨配置broker id,如果不配置系統(tǒng)會自動配置。

broker.id=0 ##集群其他服務(wù)器需要改動

#消費者的訪問端口,logstash或者elasticsearch

listeners=PLAINTEXT://192.168.205.155:9092 ##集群其他服務(wù)器需要改動

#接收和發(fā)送網(wǎng)絡(luò)信息的線程數(shù)

num.network.threads=3

#服務(wù)器用于處理請求的線程數(shù),其中可能包括磁盤I/O。

num.io.threads=8

#套接字服務(wù)器使用的發(fā)送緩沖區(qū)(SO_SNDBUF)

socket.send.buffer.bytes=102400

#套接字服務(wù)器使用的接收緩沖區(qū)(SO_RCVBUF)

socket.receive.buffer.bytes=102400

#套接字服務(wù)器將接受的請求的最大大小(防止OOM)。

socket.request.max.bytes=104857600

#以逗號分隔的目錄列表,其中存儲日志文件。

log.dirs=/usr/local/kafka/logs #此目錄要先創(chuàng)建,不會自動創(chuàng)建。(如果不行就關(guān)閉此選項)

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1
zookeeper.connect=192.168.205.155:2181,192.168.205.156:2181,192.168.205.157:2181

zookeeper.connection.timeout.ms=6000

group.initial.rebalance.delay.ms=0
7. 創(chuàng)建kafka 日志文件
[root@es-1 ~]# mkdir -p /usr/local/kafka/logs/
8.****配置集群其他節(jié)點

只需要把配置好的安裝包直接分發(fā)到不同的機器上,然后修改zookeeper的myid,kafka的broker.id和listeners就可以了。

9. 啟動kafka 集群(順序是先啟動zk ,然后再啟動kafka
①啟動zk
[root@es-1 ~]# nohup /opt/elk/kafka_2.11-1.1.0/bin/zookeeper-server-start.sh zookeeper.properties >>/dev/null 2>&1 &

[root@es-2 ~]# nohup /opt/elk/kafka_2.11-1.1.0/bin/zookeeper-server-start.sh zookeeper.properties >>/dev/null 2>&1 &

[root@es-3 ~]# nohup /opt/elk/kafka_2.11-1.1.0/bin/zookeeper-server-start.sh zookeeper.properties >>/dev/null 2>&1 &
②驗證是否正確

#安裝nc

[root@es-1 ~]# yum -y install nc              

\#使用echo ruok|nc 127.0.0.1 2181 測試是否啟動了該Server,若回復(fù)imok表示已經(jīng)啟動。

[root@es-1 ~]# echo ruok|nc 127.0.0.1 2181

imok[root@es-1 ~]#

#查看zk的配置,配置正常返回證明zk service 正常

[root@es-1 ~]# echo conf | nc 127.0.0.1 2181

clientPort=2181

dataDir=/opt/elk/kafka/zookeeper/data/version-2

dataLogDir=/opt/elk/kafka/zookeeper/logs/version-2

tickTime=2000

maxClientCnxns=20

minSessionTimeout=4000

maxSessionTimeout=40000

serverId=1

initLimit=10

syncLimit=5

electionAlg=3

electionPort=3888

quorumPort=2888

peerType=0

#stat 可以查看集群狀態(tài)

[root@es-1 ~]# echo stat|nc 127.0.0.1 2181

Zookeeper version: 3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT

Clients:

 /127.0.0.1:45542[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/11

Received: 1025

Sent: 1035

Connections: 1

Outstanding: 0

Zxid: 0x100000074

Mode: follower

Node count: 28

#通過lsof 命令查看端口是否正常啟動

[root@es-1 ~]# lsof -i:2181

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

java 29022 root 94u IPv6 496186 0t0 TCP *:eforward (LISTEN)

# 還有如下常用命令:

ZooKeeper 支持某些特定的四字命令字母與其的交互。它們大多是查詢命令,用來獲取 ZooKeeper 服務(wù)的當(dāng)前狀態(tài)及相關(guān)信息。用戶在客戶端可以通過 telnet 或 nc 向 ZooKeeper 提交相應(yīng)的命令

可以通過命令:

echo stat|nc 127.0.0.1 2181 來查看哪個節(jié)點被選擇作為follower或者leader
echo ruok|nc 127.0.0.1 2181 測試是否啟動了該Server,若回復(fù)imok表示已經(jīng)啟動。
echo dump| nc 127.0.0.1 2181 ,列出未經(jīng)處理的會話和臨時節(jié)點。
echo kill | nc 127.0.0.1 2181 ,關(guān)掉server
echo conf | nc 127.0.0.1 2181 ,輸出相關(guān)服務(wù)配置的詳細信息。
echo cons | nc 127.0.0.1 2181 ,列出所有連接到服務(wù)器的客戶端的完全的連接 / 會話的詳細信息。
echo envi |nc 127.0.0.1 2181 ,輸出關(guān)于服務(wù)環(huán)境的詳細信息(區(qū)別于 conf 命令)。
echo reqs | nc 127.0.0.1 2181 ,列出未經(jīng)處理的請求。
echo wchs | nc 127.0.0.1 2181 ,列出服務(wù)器 watch 的詳細信息。
echo wchc | nc 127.0.0.1 2181 ,通過 session 列出服務(wù)器 watch 的詳細信息,它的輸出是一個與 watch 相關(guān)的會話的列表。
echo wchp | nc 127.0.0.1 2181 ,通過路徑列出服務(wù)器 watch 的詳細信息。它輸出一個與 session 相

③啟動kafka
[root@es-1 ~]#nohup /opt/elk/kafka_2.11-1.1.0/bin/kafka-server-start.sh /opt/elk/kafka_2.11-1.1.0/config/server.properties >>/dev/null 2>&1 &

[root@es-2 ~]# nohup /opt/elk/kafka_2.11-1.1.0/bin/kafka-server-start.sh /opt/elk/kafka_2.11-1.1.0/config/server.properties >>/dev/null 2>&1 &

[root@es-3 ~]# nohup /opt/elk/kafka_2.11-1.1.0/bin/kafka-server-start.sh /opt/elk/kafka_2.11-1.1.0/config/server.properties >>/dev/null 2>&1 &
④檢測kafka

#測試kafka 工作是否正常,新建一個topic

[root@es-1 bin]# /opt/elk/kafka_2.11-1.1.0/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Created topic "test".

提示以下內(nèi)容證明沒有問題 Created topic "test".

#通過list 來查看

[root@es-1 ~]# /opt/elk/kafka_2.11-1.1.0/bin/kafka-topics.sh --zookeeper 192.168.205.155:2181 --list

test
⑤報錯解決
1)如果無法啟動zk集群或者kafka集群
解決辦法:
配置文件可能寫錯,注意myid和配置文件要一致。
或者看kafka配置文件的log.dirs=對應(yīng)的目錄是否存在

上一篇:filebeat+ELK+kafka集群搭建(二:filebeat部署)
下一篇:filebeat+ELK+kafka集群搭建(四:logstash部署)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內(nèi)容