kafka 增加許可權認證配置
一、 版本說明:
zookeeper版本無要求,kafka必須使用0.9 以後的版本
本例使用:zookeeper-3.4.10,kafka_2.11-1.0.0
安裝連結:Linux下kafka安裝和zookeeper環境搭配
二、 zookeeper配置
2.1 切換至 /usr/zookeeper/zookeeper-3.4.10/conf/ 下
新建檔案:zk_server_jaas.conf
檔案內容:
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_kafka="kafka-sec"
user_producer="prod-sec";
};
# 註釋: "user_" 接使用者名稱, "=" 後為密碼 (例user_kafka="kafka-sec": 使用者名稱為 kafka,密碼為 kafka-sec )
2.2 zoo.cfg 檔案配置新增如下配置:
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
2.3 切換至 /usr/zookeeper/zookeeper-3.4.10/ 下
新建資料夾: for_sasl
將以下jar包拷貝到for_sasl資料夾中(jar在 kafka_2.11-1.0.0/libs/ 中查詢, 版本號可以不同,名字相同即可)
kafka-clients-0.10.0.1.jar
lz4-1.3.0.jar
slf4j-api-1.7.21.jar
slf4j-log4j12-1.7.21.jar
snappy-java-1.1.2.6.jar
2.4 切換至 /usr/zookeeper/zookeeper-3.4.10/bin/ 下
zkEnv.sh 檔案新增如下配置
for i in "$ZOOBINDIR"/../for_sasl/*.jar;
do CLASSPATH="$i:$CLASSPATH"
done
SERVER_JVMFLAGS=" -Djava.security.auth.login.config=$ZOOCFGDIR/zk_server_jaas.conf "
三、kafka配置
3.1 切換至 /usr/kafka/kafka_2.11-1.0.0/config/
新建檔案:kafka_server_jaas.conf
檔案內容:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin"
user_producer="prod-sec"
user_consumer="cons-sec";
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafka"
password="kafka-sec";
};
3.2 切換至 /usr/kafka/kafka_2.11-1.0.0/config/
server.properties 檔案新增如下配置:
# 注意:172.10.10.10 修改為自己本機IP
listeners=SASL_PLAINTEXT://172.10.10.10:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=true
3.3 切換至 /usr/kafka/kafka_2.11-1.0.0/
新建檔案:start.sh (kafka啟動指令碼)
檔案內容:
ROOT=$(cd `dirname $0`; pwd)
export KAFKA_OPTS=" -Djava.security.auth.login.config=$ROOT/config/kafka_server_jaas.conf "
$ROOT/bin/kafka-server-start.sh -daemon $ROOT/config/server.properties
修改檔案許可權:
sudo chmod 777 start.sh
四、啟動
(若有啟動執行的,請先關閉,重啟)
1. 啟動zookeeper:
cd /usr/zookeeper/zookeeper-3.4.10/bin
./zkServer.sh start
2. 啟動kafka:
# 注意:請勿使用 ./bin/kafka-server-start.sh -daemon ./config/server.properties 在終端直接啟動
cd /usr/kafka/kafka_2.11-1.0.0/
./start.sh
3.驗證啟動:
jps
# 如下啟動成功