当我从kakfa_2.12-2.3.0中的软件包运行Zookeeper时,我会收到以下错误
$ export KAFKA_OPTS="-Djava.security.auth.login.config=/kafka/kafka_2.12-2.3.0/config/zookeeper_jaas.conf"
$ ./bin/zookeeper-server-start.sh config/zookeeper.properties
和 zookeeper_jaas.conf is
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret";
};
和 zookeeper.properties文件 is
server=localhost:9092
#server=localhost:2888:3888
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="ibm" password="ibm-secret";
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
ssl.truststore.location=**strong text**/kafka/apache-zookeeper-3.5.5-bin/zookeeperkeys/client.truststore.jks
ssl.truststore.password=test1234
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasLoginRenew=3600000
requireClientAuthScheme=sasl
任何人都可以建议什么是原因
您似乎已经将一堆kafka sasl配置混合到了Zookeeper配置文件中。Zookeeper和Kafka都有不同的SASL支持,因此无法正常工作。
我猜想您想在Kafka和Zookeeper之间启用SASL身份验证。在这种情况下,您需要遵循Zookeeper服务器 - 委员会指南:https://cwiki.apache.org/confluence/display/display/zookeeper/client-server-server mmutual mmutual authentication
Zookeeper不支持SASL平原,但是DigestMD5非常相似。在这种情况下,您的jaas.conf
文件应该看起来像:
Server {
org.apache.zookeeper.server.auth.DigestLoginModule required
user_super="adminsecret"
user_bob="bobsecret";
};
然后,您需要配置您的Kafka经纪人以使用SASL连接到动物园管理员。您可以使用另一个jaas.conf
文件(这次将其加载在Kafka中(:
Client {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="bob"
password="bobsecret";
};
注意:您还可以在Zookeeper服务器之间启用SASL。为此,请遵循"服务器 - 服务器指南:https://cwiki.apache.org/confluence/display/zookeeper/server-server-server-server-server mutual mmutual authentication