apache-kafka - 在“/kafka/kafka_2.12-2.3.0/config/zookeeper_jaas.conf”中找不到名为“Server”的 JAAS 配置部分
问题描述
当我从 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是_
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret";
};
zookeeper.properties文件是
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
谁能建议可能是什么原因
解决方案
您似乎在 Zookeeper 配置文件中混入了一堆 Kafka SASL 配置。Zookeeper 和 Kafka 都有不同的 SASL 支持,所以它不会工作。
我猜你想在 Kafka 和 Zookeeper 之间启用 SASL 身份验证。在这种情况下,您需要遵循 Zookeeper Server-Client 指南:https ://cwiki.apache.org/confluence/display/ZOOKEEPER/Client-Server+mutual+authentication
Zookeeper 不支持 SASL Plain,但 DigestMD5 非常相似。在这种情况下,您的jaas.conf
文件应如下所示:
Server {
org.apache.zookeeper.server.auth.DigestLoginModule required
user_super="adminsecret"
user_bob="bobsecret";
};
然后您需要配置您的 Kafka 代理以使用 SASL 连接到 Zookeeper。您可以使用另一个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+mutual+authentication
推荐阅读
- matplotlib - 我正在尝试绘制全球 SST 异常。但是,不能直接调用作为 Dataset.plot 的错误
- machine-learning - 为什么 xgboost 显示最后一棵树中未显示的特征重要性特征?
- c - 在arch linux中编译c代码时找不到GTK头文件
- entity-framework-core - 如何使用实体框架核心更改表中的列类型
- excel - 在 Delphi 服务中保存 Excel 文件
- datagrid - Uno Platform WCT DataGrid:有 macOS 预发布版本吗?
- python - 如何编写一个返回两个日期之间天数的python函数
- laravel - Laravel 6 验证多列
- sql - postgresql 中的多个搜索和结果
- node.js - React 本机加密流模块未定义