kafka sals/scram 單機(jī)版安裝步驟

ubuntu版本

java安裝

  1. sudo apt-get update
  2. sudo apt-get install openjdk-8-jdk
  3. java --version

zookeeper安裝

  1. 下載
    wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

  2. 解壓縮
    tar -zxvf zookeeper-3.4.6.tar.gz

  3. 進(jìn)入目錄 zookeeper-3.4.6/conf磁椒,將 zoo_sample.cfg重命名為 zoo.cfg
    cp zoo_sample.cfg zoo.cfg

  4. 啟動(dòng)zk
    bin/zkServer.sh start

  5. 查看zk啟動(dòng)狀態(tài)
    bin/zkServer.sh status

kafka安裝

  1. 下載
    wget https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz

  2. 解壓縮
    tar -zxvf kafka_2.11-2.4.1.tgz

  3. 進(jìn)入 kafka_2.11-2.4.1 啟動(dòng)kafka
    bin/kafka-server-start.sh config/server.properties
    后臺(tái)啟動(dòng):nohup bin/kafka-server-start.sh config/server.properties 2>&1 &

  4. 正常kafka能啟動(dòng)井辜,如果kafka報(bào)錯(cuò)如下

  Caused by: java.net.UnknownHostException: xxx: Name or service not known

修改 config/server.properties 加上配置 listeners=PLAINTEXT://10.0.0.3:8090

  1. 發(fā)送生產(chǎn)消息
    ./bin/kafka-console-producer.sh --broker-list 10.0.0.3:8090 --topic mytest --producer.config config/producer.properties

  2. 接收生產(chǎn)消息
    ./bin/kafka-console-consumer.sh --bootstrap-server 10.0.0.3:8090 --topic mytest --from-beginning --consumer.config config/consumer.properties

  3. 遠(yuǎn)程外網(wǎng)連接使用
    以上配置者疤,用外網(wǎng)進(jìn)行連接的時(shí)候苛让,會(huì)報(bào)超時(shí)

Send failed; nested exception is org.apache.kafka.common.errors.TimeoutException: Topic XXX_TOPIC not present in metadata after 30000 ms.

Connection to node 0 (/10.0.0.3:8090) could not be established. Broker may not be available.
[Producer clientId=producer-1] Connection to node 0 (/10.0.0.3:8090) could not be established. Broker may not be available.

增加以下配置即可: advertised.listeners=PLAINTEXT://xx_外網(wǎng)ip地址:8090

sals/scram配置

  1. 修改 kafka_2.11-2.4.1/config 下的 server.properties 文件
# 開(kāi)啟 sasl認(rèn)證,如果要開(kāi)啟ACL恢共,則要加上下面一段配置,是針對(duì)topic進(jìn)行權(quán)限控制
listeners=SASL_PLAINTEXT://10.0.0.3:8090
advertised.listeners=SASL_PLAINTEXT://xx_外網(wǎng)ip地址:8090
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-512
sasl.enabled.mechanisms=SCRAM-SHA-512
# false 只有配置了用戶(hù)能訪問(wèn) ; true 所有用戶(hù)都能訪問(wèn)稚补,只有部分不能訪問(wèn),針對(duì)黑名單
allow.everyone.if.no.acl.found=false
super.users=User:admin


# ACL相關(guān)配置框喳,配置了開(kāi)啟針對(duì)topic/用戶(hù) 級(jí)別的讀寫(xiě)控制课幕,老版本
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
  1. 在 config 目錄下增加 kafka_server_jaas.conf 文件(名字自定義即可),文件里面的配置的內(nèi)容
KafkaServer{
    org.apache.kafka.common.security.scram.ScramLoginModule required
    username="admin"
    password="admin-sec"
};

KafkaServer的意思是指五垮,kafka broker 之間通訊的賬號(hào)和密碼

  1. 將賬號(hào)信息乍惊,通過(guò)zookeeper的方式進(jìn)行配置,2中 admin 賬號(hào)也是通過(guò)這種方式配置
# 配置admin
./bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-512=[password=admin-sec]' --entity-type users --entity-name admin
# 配置生產(chǎn)者賬號(hào) producer
./bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-512=[password=ptest]' --entity-type users --entity-name ptest
# 配置消費(fèi)者賬號(hào) consumer
./bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-512=[password=ctest]' --entity-type users --entity-name ctest



#如果開(kāi)啟了acl認(rèn)證放仗,則需要針對(duì)topic進(jìn)行授權(quán)润绎,以下是對(duì) ptest 賬號(hào)授權(quán)
./bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=127.0.0.1:2181 --add --allow-principal User:ptest --operation Write --topic mytes
# ctest
./bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=127.0.0.1:2181 --add --allow-principal User:ctest --operation Read --topic mytest
#授權(quán)消費(fèi)組隊(duì)topic的讀權(quán)限
./bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=127.0.0.1:2181 --add --allow-principal User:ctest --operation Read --group test-consumer-group
  1. 配置kafka啟動(dòng)加載的賬號(hào)信息,修改 bin/kafka-server-start.sh文件诞挨,在配置文件中加上以下配置莉撇,在有效配置的最上面貼上就可以
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka_2.11-2.4.1/config/kafka_server_jaas.conf"
  1. Java客戶(hù)端測(cè)試
#增加配置
Map<String, Object> props = new HashMap<>();
props.putxxx ...
props.put("security.protocol","SASL_PLAINTEXT");
props.put("sasl.mechanism","SCRAM-SHA-512");
props.put("sasl.jaas.config","org.apache.kafka.common.security.scram.ScramLoginModule required username='ctest' password='ctest'");

  1. 如果要在服務(wù)器上測(cè)試,則需要做以下配置
# 生產(chǎn)者 - 修改配置 config/producer.properties 增加以下配置
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
    username="ptest" \
    password="ptest";

# 生產(chǎn)者啟動(dòng)命令
./bin/kafka-console-producer.sh --broker-list 10.0.0.3:8090 --topic mytest --producer.config config/producer.properties

# 消費(fèi)者 - 修改配置 config/consumer.properties 增加以下配置
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
    username="ctest" \
password="ctest";

# 消費(fèi)者啟動(dòng)命令
./bin/kafka-console-consumer.sh --bootstrap-server 10.0.0.3:8090 --topic mytest --from-beginning --consumer.config config/consumer.properties

問(wèn)題及概念理解

1 .listeners與 advertised.listeners 的區(qū)別
listeners: 定義了kafka服務(wù)器內(nèi)部監(jiān)聽(tīng)的地址和端口
advertised.listeners 定義了向客戶(hù)端公開(kāi)的地址和端口惶傻,通過(guò)zk進(jìn)行數(shù)據(jù)共享棍郎,它會(huì)保存在zk中 /brokers/ids/0 的endpoints中 。
(使用場(chǎng)景:當(dāng)公網(wǎng)ip不是服務(wù)器網(wǎng)卡银室,而是通過(guò)代理綁定涂佃,無(wú)法通過(guò)listener進(jìn)行綁定,只能通過(guò)0.0.0.0綁定蜈敢,當(dāng)外部需要訪問(wèn)kafka集群時(shí)辜荠,通過(guò)zk拿所有的broker節(jié)點(diǎn)的公網(wǎng)地址進(jìn)行訪問(wèn))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市扶认,隨后出現(xiàn)的幾起案子侨拦,更是在濱河造成了極大的恐慌,老刑警劉巖辐宾,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狱从,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡叠纹,警方通過(guò)查閱死者的電腦和手機(jī)季研,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)誉察,“玉大人与涡,你說(shuō)我怎么就攤上這事。” “怎么了驼卖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵氨肌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我酌畜,道長(zhǎng)怎囚,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任桥胞,我火速辦了婚禮恳守,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贩虾。我一直安慰自己催烘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布缎罢。 她就那樣靜靜地躺著伊群,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屁使。 梳的紋絲不亂的頭發(fā)上在岂,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音蛮寂,去河邊找鬼。 笑死酬蹋,一個(gè)胖子當(dāng)著我的面吹牛及老,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播范抓,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼骄恶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了匕垫?” 一聲冷哼從身側(cè)響起僧鲁,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎象泵,沒(méi)想到半個(gè)月后寞秃,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偶惠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年春寿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忽孽。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绑改,死狀恐怖谢床,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厘线,我是刑警寧澤识腿,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站皆的,受9級(jí)特大地震影響覆履,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜费薄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栖雾。 院中可真熱鬧楞抡,春花似錦、人聲如沸析藕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)账胧。三九已至竞慢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間治泥,已是汗流浹背筹煮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留居夹,地道東北人败潦。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像准脂,于是被迫代替她去往敵國(guó)和親劫扒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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