根据前4篇文章,我们可以从零开始搭建Kafka的环境,包括集群、SASL和SSL证书等配置,这篇文章就不做详细的说明了,详细说明请查看如下4篇文章,该文主要是以最简单的说明方式将这一套完整的配置展示给大家。
Kafka配置2--Windows下配置Kafka的SASL-PLAIN身份验证
Kafka配置4--Windows下配置Kafka的SSL证书
Kafka配置5--Windows下配置Kafka的集群+SASL+SSL
Kafka配置6--Windows下设置和增加SASL用户或用户权限
完整的配置流程如下所示
1、Zookeeper
1.1、修改zoo.cfg配置
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
# 存放数据
dataDir=D:/Net_Program/Net_Zookeeper/data-file
# 存放日志
dataLogDir=D:/Net_Program/Net_Zookeeper/data-log
# 监听端口
clientPort=2181
# 配置集群服务
server.1=192.168.2.200:2881:3881
server.2=192.168.2.200:2882:3882
server.3=192.168.2.200:2883:3883
上述是针对一台机子的设置,如果是第二台、第三台……,依次修改dataDir、dataLogDir、clientPort这三个参数即可
1.2、创建myid文件
在D:\Net_Program\Net_Zookeeper\data-file中新建名称为myid的文件(没有后缀),内容为1
在D:\Net_Program\Net_Zookeeper2\data-file中新建名称为myid的文件(没有后缀),内容为2
在D:\Net_Program\Net_Zookeeper3\data-file中新建名称为myid的文件(没有后缀),内容为3
如果有更多Zookeeper配置,按照以上规则依次创建即可
1.3、新建zk_server_jaas.conf
在D:\Net_Program\Net_KafkaConfig文件夹(用于存放Zookeeper和Kafka的账号和密码配置文件)新建zk_server_jaas.conf文件,内容如下:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin123456"
user_admin="admin123456"
user_quber="quber123456"
user_quber1="quber123456"
user_quber2="quber123456"
user_scyjTestUser1="scyj&cdkx"
user_scyjTestUser2="scyj&cdkx"
user_scyjTestUser3="scyj&cdkx";
};
1.4、修改zkEnv.cmd
在Zookeeper安装目录bin中,打开zkEnv.cmd进行编辑,在该文件中set ZOO_LOG4J_PROP=INFO,CONSOLE下一行加入如下配置:
set SERVER_JVMFLAGS=-Djava.security.auth.login.config=D:/Net_Program/Net_KafkaConfig/zk_server_jaas.conf
同理,如果有第二台、第三台……,都需要修改上述配置
1.5、导入相关jar
在Kafka安装目录libs中分别找到如下jar,复制它们到Zookeeper安装目录的lib中即可
kafka-clients-2.4.0.jar
lz4-java-1.6.0.jar
slf4j-api-1.7.28.jar
slf4j-log4j12-1.7.28.jar
snappy-java-1.1.7.3.jar
2、Kafka
2.1、修改server.properties配置
# kafka消息存放的路径
log.dirs=D:/Net_Program/Net_Kafka/kafka-data
listeners=SASL_SSL://192.168.2.200:9092
advertised.listeners=SASL_SSL://192.168.2.200:9092
# 使用的认证协议
security.inter.broker.protocol=SASL_SSL
# SASL机制
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
# 完成身份验证的类
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
# 如果没有找到ACL(访问控制列表)配置,则允许任何操作。
#allow.everyone.if.no.acl.found=true
super.users=User:admin
# 唯一标识
broker.id=0
host.name=192.168.2.200
# 监听端口
port=9092
# 对应着3台Zookeeper的IP地址和端口
zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183
ssl.keystore.location=D:/Net_Program/Net_KafkaSsl/kafka1.keystore.jks
ssl.keystore.password=qubernet
ssl.key.password=qubernet
ssl.truststore.location=D:/Net_Program/Net_KafkaSsl/ca.truststore.jks
ssl.truststore.password=qubernet
ssl.keystore.type=JKS
ssl.truststore.type=JKS
ssl.client.auth=required
ssl.secure.random.implementation=SHA1PRNG
security.inter.broker.protocol=SASL_SSL
上述是针对一台机子的设置,如果是第二台、第三台……,依次修改log.dirs、listeners、advertised.listeners、broker.id、port这五个参数即可
2.2、新建kafka_server_jaas.conf
在D:\Net_Program\Net_KafkaConfig文件夹(用于存放Zookeeper和Kafka的账号和密码配置文件)新建kafka_server_jaas.conf文件,内容如下:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin123456"
user_admin="admin123456"
user_quber="quber123456"
user_quber1="quber123456"
user_quber2="quber123456"
user_scyjTestUser1="scyj&cdkx"
user_scyjTestUser2="scyj&cdkx"
user_scyjTestUser3="scyj&cdkx";
};
2.3、修改kafka-server-start.bat
在Kafka安装目录bin\windows中,打开kafka-server-start.bat进行编辑,在该文件中SetLocal关键字下一行加入如下配置:
set KAFKA_OPTS=-Djava.security.auth.login.config=D:/Net_Program/Net_KafkaConfig/kafka_server_jaas.conf
同理,如果有第二台、第三台……,都需要修改上述配置