Kerberos环境下 命令行连接kafka 和zk

加入kerberos 之后用普通命令行就无法直接操作kafka和zk了 需要增加几个文件

首先添加kafka的环境文件

KafkaClient {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   storeKey=true
   keyTab="/var/lib/keytab/kafka.keytab"
   principal="kafka@TEST.COM";
};

需要修改的就keytab位置和域

启动producer  consumer  需要另外一个文件

[root@master keytab]# cat producer.properties 
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka


[root@master keytab]# cat consumer.properties 
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
group.id=test-consumer-group

 然后命令行启动即可

Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner  authentication information from the user
这个报错可以这样清空一下缓存再试试
kdestroy 
kinit -kt /var/lib/keytab/kafka.keytab kafka


export KAFKA_OPTS="-Djava.security.auth.login.config=/var/lib/keytab/kafka_jaas.conf"   

kafka-console-producer --broker-list master.test.com:9092 --topic  test1  --producer.config /var/lib/keytab/producer.properties 

consmer改一下对应的命令就行

kafka-console-consumer --topic test1 --from-beginning --bootstrap-server master:9092 --consumer.config /var/lib/keytab/consumer.properties

from-bgeinning主要是用来测试的  具体情况可加可不加

连接zk也需要同样的一个配置文件 

编写jaas-zk-keytab.conf文件

Client {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="/root/hbasenew.keytab"
   storeKey=true
   useTicketCache=false
   principal="hbase@RSD.COM";
};

将jaas-zk-keytab.conf加载到环境变量

export CLIENT_JVMFLAGS="-Djava.security.auth.login.config=jaas-zk-keytab.conf"

 zookeeper-client -server master:2181

连接客户端时候一定要用-server参数指定zookeeper节点,不然连接不上

不行就也kinit 一下 再连接

Kafka可以通过Kerberos进行身份验证和安全连接。下面是通过Kerberos连接Kafka的步骤: 1. 配置Kafka服务器: - 在Kafka服务器上安装Kerberos客户端和服务端软件。 - 配置Kafka服务器的`server.properties`文件,设置以下属性: ``` listeners=SASL_PLAINTEXT://<kafka_server>:<kafka_port> security.inter.broker.protocol=SASL_PLAINTEXT sasl.mechanism.inter.broker.protocol=GSSAPI sasl.enabled.mechanisms=GSSAPI sasl.kerberos.service.name=kafka ``` - 启动Kafka服务器。 2. 创建Kerberos主体和Keytab文件: - 在Kerberos服务器上创建一个服务主体(例如:`kafka/kafka_server_hostname@REALM`)。 - 为该服务主体生成Keytab文件,并将其分发到Kafka服务器。 3. 配置Kafka客户端: - 在Kafka客户端上安装Kerberos客户端软件。 - 配置Kafka客户端的`client.properties`文件,设置以下属性: ``` bootstrap.servers=<kafka_server>:<kafka_port> security.protocol=SASL_PLAINTEXT sasl.mechanism=GSSAPI sasl.kerberos.service.name=kafka sasl.kerberos.principal=<kafka_client_principal> sasl.kerberos.keytab=<kafka_client_keytab> ``` - 将Kerberos客户端的`krb5.conf`文件配置为正确的Kerberos Realm和KDC信息。 4. 使用Kafka客户端: - 使用Kafka提供的Kerberos认证库进行身份验证和连接。 - 例如,使用Kafka命令行工具发送和接收消息: ``` kafka-console-producer.sh --broker-list <kafka_server>:<kafka_port> --topic <topic> --producer.config client.properties kafka-console-consumer.sh --bootstrap-server <kafka_server>:<kafka_port> --topic <topic> --consumer.config client.properties ``` 通过以上步骤,你可以通过Kerberos安全连接Kafka。请确保正确配置KerberosKafka的相关参数,并提供正确的主体和Keytab文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值