kafka 启动_使用用户密码连接kafka

使用kafka用户密码配置访问权限

01

配置jaas 文件

配置server jaas 文件

[root@web148 kafka]# cat config/kafka_server_jaas.conf KafkaServer {  org.apache.kafka.common.security.plain.PlainLoginModule required    username="ydwydy"    password="ydwydy#_$"    user_ydwydy="ydwydy#_$";};KafkaClient {  org.apache.kafka.common.security.plain.PlainLoginModule required    username="ydwydy"    password="ydwydy#_$";};Client {  org.apache.kafka.common.security.plain.PlainLoginModule required    username="ydwydy"    password="ydwydy#_$";};

username:用户名,连接kafka时需要提供的账号信息

password:密码,连接kafka 提供的密码

user_usernmae:user_ + username,等号后是跟此用户的密码

client jaas配置文件:

[root@web148 kafka]# cat config/kafka_client_jaas.conf KafkaClient {  org.apache.kafka.common.security.plain.PlainLoginModule required      username="ydwb2b"    password="ydwb2b@_@"    user_ydwb2b="ydwb2b@_@";};

zk jaas 配置文件

[root@web148 kafka]# cat config/kafka_zoo_jaas.conf Server{  org.apache.kafka.common.security.plain.PlainLoginModule required    username="ydwb2b"    password="ydwb2b@_@"    user_ydwb2b="ydwb2b@_@";};

02

kafka启动命令修改

启动配置位置随自己的的路径和名称变动

zookeeper-server-start.sh 启动文件配置

[root@web148 kafka]# cat bin/zookeeper-server-start.shexport KAFKA_OPTS=" -Djava.security.auth.login.config=/home/app/kafka/config/kafka_zoo_jaas.conf -Dzookeeper.sasl.client.username=admin"# 如果使用的是外部zookeeper的话配置不同的地方是启动脚本的地方[root@web148 kafka]#  bin/zkEnv.shSERVER_JVMFLAGS=" -Djava.security.auth.login.config=/opt/zookeeper-3.4.13/conf/zk_server_jaas.conf"

kafka-server-start.sh 启动文件配置

[root@web148 kafka]# cat bin/kafka-server-start.shexport KAFKA_OPTS=" -Djava.security.auth.login.config=/home/app/kafka/config/kafka_server_jaas.conf"

kafka-run-class.sh 

[root@web148 kafka]# more bin/kafka-run-class.shKAFKA_SASL_OPTS='-Djava.security.auth.login.config=/home/app/kafka/config/kafka_server_jaas.conf'

如果你需要通过kafka提供的命令连接带有用户密码的kafka的话需要进行下面2个文件的修改

(可选)kafka-console-producer.sh

[root@web148 kafka]# cat bin/kafka-console-producer.shexport KAFKA_OPTS=" -Djava.security.auth.login.config=/home/app/kafka/config/kafka_client_jaas.conf"

(可选)kafka-console-consumer.sh

[root@web148 kafka]# cat bin/kafka-console-consumer.shexport KAFKA_OPTS=" -Djava.security.auth.login.config=/opt/kafka/config/kafka_client_jaas.conf"

03

主配置文件修改

server.properties

[root@web148 kafka]# cat config/server.propertieslisteners=SASL_PLAINTEXT://:9092security.inter.broker.protocol=SASL_PLAINTEXTsasl.enabled.mechanisms=PLAINsasl.mechanism.inter.broker.protocol=PLAINadvertised.listeners=SASL_PLAINTEXT://127.0.0.1:9092advertised.host.name=127.0.0.1advertised.port=9092

zookeeper.properties

[root@web148 kafka]# cat config/zookeeper.propertiesauthProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProviderrequireClientAuthScheme=sasljaasLoginRenew=3600000

(可选)producer.properties

[root@web148 kafka]# tail config/producer.propertiessecurity.protocol=SASL_PLAINTEXTsasl.mechanism=PLAIN

(可选)consumer.properties 

[root@web148 kafka]# tail config/consumer.properties security.protocol=SASL_PLAINTEXTsasl.mechanism=PLAIN

启动kafka 

04

测试kafka连接

启动消费者

./bin/kafka-console-consumer.sh --bootstrap-server ip:9092 --topic test --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN --from-beginning

启动生产者

./bin/kafka-console-producer.sh --broker-list ip:9092 --topic test --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN

使用python方式进行测试

# 生产数据脚本from kafka import KafkaProducertopic_name = 'test'producer = KafkaProducer(    sasl_mechanism="PLAIN",    security_protocol='SASL_PLAINTEXT',    sasl_plain_username="ydwb2b",    sasl_plain_password="ydwb2b@_@",    bootstrap_servers=['10.0.0.10:9092'])for i in range(5):    producer.send(topic_name, 'create data: '+ str(i) )producer.close()#消费脚本from kafka import KafkaConsumertopic_name = 'test'consumer = KafkaConsumer(topic_name,    sasl_mechanism="PLAIN",    security_protocol='SASL_PLAINTEXT',    sasl_plain_username="ydwb2b",    sasl_plain_password="ydwb2b@_@",    bootstrap_servers=['127.0.0.1:9092'],)for msg in consumer:    print("%s:%d:%d: key=%s value=%s" % (msg.topic, msg.partition, msg.offset, msg.key, msg.value.decode()))

7428c1c18a26429390e5673c05c80452.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值