我已经创建了一个已使用 Kerberos 语言Kafka 集群。它运行良好,我可以生成和使用消息。现在我想使用kafkatool2软件,我通过以下命令通过cmd运行该程序:
kafkatool.exe -J-Djava.security.auth.login.config=d:\client_jaas.conf
但填满空白后我得到了这个错误:
错误 Kafkatool.exe-SASL_PLAINTEXT
这是我的杰斐逊美国农业部文件:
Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="D:\kafkaadmin.keytab"
storeKey=true
useTicketCache=false
principal="admin/[email protected]";
};
KafkaServer {
com.sun.security.auth.module.Krb5LoginModule required debug=true
useKeyTab=true
storeKey=true
keyTab="D:\kafkaadmin.keytab"
principal="admin/[email protected]";
};
// For Zookeeper Client
Client {
com.sun.security.auth.module.Krb5LoginModule required debug=true
useKeyTab=true
storeKey=true
keyTab="D:\kafkaadmin.keytab"
principal="admin/[email protected]";
};
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required debug=true
useKeyTab=true
storeKey=true
keyTab="D:\kafkaadmin.keytab"
principal="admin/[email protected]";
};
我应该缺少什么?
Kafka-cluster 操作系统:Ubuntu 14.04
用户操作系统:Windows 10 Enterprise
答案1
当我尝试在 Kerberized kafka 环境中查看消息时,我在虚拟机中遇到了类似的问题。尝试在 KafkaClient 配置中设置 serviceName="kafka"。
另外,请确保通过传递 -J-Djava.security.auth.login.config 作为参数来运行 kafkatool。
客户端 JAAS 配置示例:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
serviceName="kafka"
useKeyTab=true
keyTab="<path_to>/user.keytab"
principal="user@domain";
};
我在 Linux 环境中使用了该工具,但我认为上述方法也能解决 Windows 中的问题。