centos7 kafka安全認證(配置賬號密碼生產消費)+systemctl開機啓動

kafka安裝類似tomcat,也就是隻要安裝好了jdk,解壓即用。
這裏不介紹jdk安裝,不會請自行搜索。

系統:centos7.4
Spring 版本:4.2.5.RELEASE
kafka版本:kafka_2.12-2.2.0.tgz (asc, sha512)
zookeeper:kafka自帶zookeeper
(由於Spring版本問題,無法使用kafka最新版,2.3需要spring 5,經測試2.2.0可以正常使用)
下載地址下載鏈接
關聯教程:
centos7 Spring mvc配置kafka教程+兩種kafka配置方式+spring xml配置+java代碼配置+kafka sasl安全認證(配置賬號密碼生產消費)

一 kafka安裝

1.解壓到/usr/kafka,目錄可自定義。

目錄結構:
目錄結構

2.設置 systemctl 啓動,

cd  /lib/systemd/system/

新建zookeeper.service ,jdk目錄和kafka目錄換成自己的

vim  zookeeper.service 
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/bin"
User=root
Group=root
ExecStart=/usr/kafka/bin/zookeeper-server-start.sh /usr/kafka/config/zookeeper.properties
ExecStop=/usr/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

新建kafka.service ,jdk目錄和kafka目錄換成自己的

vim kafka.service 
[Unit]
Description=Apache Kafka server (broker)
After=network.target  zookeeper.service

[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/bin"
User=root
Group=root
ExecStart=/usr/kafka/bin/kafka-server-start.sh /usr/kafka/config/server.properties
ExecStop=/usr/kafka/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

刷新配置

systemctl daemon-reload

3.zookeeper、kafka服務加入開機自啓。

systemctl enable zookeeper
systemctl enable kafka

#啓動
 systemctl start zookeeper
 systemctl start kafka

二.kafka配置SASL_PLAINTEXT賬號密碼認證

1.在config目錄下新建以下3個文件:

kafka_server_jaas.conf
kafka_client_jaas.conf
kafka_zoo_jaas.conf

kafka_server_jaas.conf內容如下:

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin"
    user_admin="admin"
    user_alice="alice";
};
KafkaClient {
	org.apache.kafka.common.security.plain.PlainLoginModule required
		username="admin"
		password="admin";
};

Client {
	org.apache.kafka.common.security.plain.PlainLoginModule required
		username="admin"
		password="admin";
};

kafka_client_jaas.conf內容如下:

KafkaClient {  
org.apache.kafka.common.security.plain.PlainLoginModule required  
    username="admin"  
    password="admin";  
};

kafka_zoo_jaas.conf內容如下:

ZKServer{
	org.apache.kafka.common.security.plain.PlainLoginModule required
		username="admin"
		password="admin"
		user_admin="admin";
};

2.修改kafka的bin文件夾中的zookeeper-server-start.sh

添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/usr/kafka/config/kafka_zoo_jaas.conf -Dzookeeper.sasl.serverconfig=ZKServer"

在這裏插入圖片描述
請勿加在最後一行!

3.修改kafka的bin文件夾中的kafka-server-start.sh

添加:

export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/kafka/config/kafka_server_jaas.conf"

在這裏插入圖片描述
不要加在最後一行。

4.修改kafka的bin文件夾中的kafka-console-producer.sh

添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/usr/kafka/config/kafka_client_jaas.conf"

5.修改kafka的bin文件夾中的kafka-console-consumer.sh

添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/usr/kafka/config/kafka_client_jaas.conf"

6.config目錄下修改server.properties,如下:

#開啓登錄驗證
#綁定外網ip可在外網用ip訪問
advertised.listeners=SASL_PLAINTEXT://ip:9092
#綁定內網ip
listeners=SASL_PLAINTEXT://ip:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name = kafka.security.auth.SimpleAclAuthorizer
super.users=User:admin

7.config目錄下在consumer.properties和 producer.properties 添加如下:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

7.config目錄下在zookeeper.properties 添加如下:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

6.先啓動zookeeper,在啓動kafka,避免無法查看問題,這裏直接啓動,沒有問題後可使用systemctl啓動

zookeeper啓動正常:
在這裏插入圖片描述
kafka啓動正常,說明賬號密碼認證通過:
在這裏插入圖片描述

安裝完成,接下來就是關於spring 接入kafka了,請看

centos7 Spring mvc配置kafka教程+兩種kafka配置方式+spring xml配置+java代碼配置+kafka sasl安全認證(配置賬號密碼生產消費)

發佈了27 篇原創文章 · 獲贊 29 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章