赞
踩
目录
- # 安装jdk 1.8
- yum install java-1.8.0-openjdk.x86_64 -y
- # 下载2.6.2 kafka
- wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.13-2.6.2.tgz
-
- # 解压
- tar -xzf kafka_2.13-2.6.2.tgz && mv kafka_2.13-2.6.2 /usr/local/kafka
- cd /usr/local/kafka
-
- # 启动zk
- bin/zookeeper-server-start.sh config/zookeeper.properties
- # 启动kafka
- bin/kafka-server-start.sh config/server.properties
-
- # 启动后查看端口
- # 查看监听zk端口2181、kafka端口 9092
- # netstat -lntp
- Active Internet connections (only servers)
- Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
-
- tcp6 0 0 :::9092 :::* LISTEN 2164/java
- tcp6 0 0 :::2181 :::* LISTEN 1008/java

这里只开启传输加密和用户认证部分,acl不在这里配置
Kafka支持的认证类别有
具体使用哪种按需选择,这里以sasl scram认证配置为例
步骤:
配置 SASL/SCRAM 的第一步,是创建能连接 Kafka 集群的用户,创建用户admin ,用于实现 Broker 间通信。
创建用户:
- # 注意将密码替换
- # 创建用户admin
- bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin],SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin
附:管理用户命令
- # 查看用户信息
- bin/kafka-configs.sh --zookeeper localhost:2181 --describe --entity-type users --entity-name admin
-
- # 删除用户
- bin/kafka-configs.sh --zookeeper localhost:2181 --alter --delete-config 'SCRAM-SHA-512' --entity-type users --entity-name admin
2.3.2.1 broker配置
创建用户之后,需要为每个 Broker 创建一个对应的 JAAS 文件。因为本例为单机部署,所以只创建了一份 JAAS 文件即可。如果是集群,需要为每个 Broker 机器都创建一份 JAAS 文件
JAAS 的文件内容如下
- # 在kafka工作目录下创建jaas.conf文件,用于broker通信
- vim config/kafka_server_jaas.conf
-
- KafkaServer {
- org.apache.kafka.common.security.scram.ScramLoginModule required
- username="admin"
- password="admin";
- };
开启broker认证配置
- vim config/server.properties
- # 添加如下配置
- # 开启认证配置
- advertised.listeners=SASL_PLAINTEXT://:9092
- listeners=SASL_PLAINTEXT://:9092
- security.inter.broker.protocol=SASL_PLAINTEXT
- # Broker 间通信也开启 SCRAM 认证,使用 SHA-256 算法
- sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
- # 开启 SCRAM 认证机制,并启用 SHA-256 算法
- sasl.enabled.mechanisms=SCRAM-SHA-256
broker启动命令添加 jaas conf配置,用于通信认证
- vim /usr/local/kafka/bin/kafka-server-start.sh
- # 将最下面的命令注释
- # exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
- # 增加jvm参数:-Djava.security.auth.login.config
- # 修改如下
- exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_server_jaas.conf kafka.Kafka "$@"
重启kafka
在这里创建 2个用户,分别是producer和 consumer 。producer 用于生产消息,consumer 用于消费消息,producer和consumer用于测试使用,生产中使用可根据业务需要创建对应用户,这里仅用于演示。
- # 创建用户producer
- bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=producer],SCRAM-SHA-512=[password=producer]' --entity-type users --entity-name producer
- # 创建用户consumer
- bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=consumer],SCRAM-SHA-512=[password=consumer]' --entity-type users --entity-name consumer
- vim /usr/local/kafka/config/producer_jaas.conf
-
- KafkaClient {
- org.apache.kafka.common.security.scram.ScramLoginModule required
- username="producer"
- password="producer";
- };
配置生产者启动脚本添加JAAS文件
- vim bin/kafka-console-producer.sh
- # 将下面的命令注释
- #exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleProducer "$@"
- # 修改如下
- exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/usr/local/kafka/config/producer_jaas.conf kafka.tools.ConsoleProducer "$@"
配置producer.properties
- vim config/producer.properties
- # 添加如下内容
- security.protocol=SASL_PLAINTEXT
- sasl.mechanism=SCRAM-SHA-256
配置JAAS文件
- vim /usr/local/kafka/config/consumer_jaas.conf
-
- KafkaClient {
- org.apache.kafka.common.security.scram.ScramLoginModule required
- username="consumer"
- password="consumer";
- };
配置消费者启动脚本添加JAAS文件配置
- vim bin/kafka-console-consumer.sh
- # 将下面的命令注释
- #exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleConsumer "$@"
- # 修改如下
- exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/usr/local/kafka/config/consumer_jaas.conf kafka.tools.ConsoleConsumer "$@"
配置consumer.properties
- vim config/consumer.properties
- # 添加如下内容
- security.protocol=SASL_PLAINTEXT
- sasl.mechanism=SCRAM-SHA-256
- # 发送消息到topic test
- bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer.config config/producer.properties
-
- # 读取test消息
- bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer.config config/consumer.properties
效果如下
至此kafka SASL SCRAM认证配置完毕
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。