我有一个独立的kafka代理,我正在尝试为其配置SASL。配置如下。我正在尝试在代理上设置SASL_PLAIN身份验证。
我的理解是,通过server.properties中的listener.name ...配置,我不需要jaas文件。但是我已经尝试过一种方法,看看是否可能是更好的方法。
我已经尝试了这些命令中的每一个,但是都导致相同的异常。
sudo bin/kafka-server-start etc/kafka/server.properties
sudo -Djava.security.auth.login.config=etc/kafka/kafka_server_jaas.conf bin/kafka-server-start etc/kafka/server.properties
显示的异常是:
KafkaServer启动期间发生致命错误。准备关闭...可以 找不到“ KafkaServer”或“ sasl_plaintext.KafkaServer”条目 JAAS配置。系统属性“ java.security.auth.login.config” 没有设置
server.properties:
listeners=SASL_PLAINTEXT://0.0.0.0:9092
listener.security.protocol.map: SASL_PLAINTEXT:SASL_PLAINTEXT
listener.name.SASL_PLAINTEXT.plain.sasl.jaas.config:
org.apache.kafka.common.security.plain.PlainLoginModule required /
username="username" /
password="Password" /
user_username="Password";
advertised.listeners=SASL_PLAINTEXT://[ipaddress]:9092
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
secutiy.inter.broker.protocol=SASL_PLAINTEXT
kafka_server_jaas.conf:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="username"
password="Password"
user_username="Password";
};
我已经花了整整一天的时间在研究-其他人是否有这个问题的经验?
答案 0 :(得分:1)
您需要导出变量,而不是将配置内联到kafka-server-start(或sudo
)。
export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_server_jaas.conf"
bin/kafka-server-start /path/to/server.properties
答案 1 :(得分:1)
在这里把我的错误归于紧缩:
bin/zookeeper-server-stop
export KAFKA_OPTS="-Djava.security.auth.login.config=etc/kafka/zookeeper_jaas.conf"
bin/zookeeper-server-start etc/kafka/zookeeper.properties &
bin/kafka-server-stop
export KAFKA_OPTS=-Djava.security.auth.login.config=etc/kafka/kafka_server_jaas.conf
bin/kafka-server-start etc/kafka/server.properties
修改 因此,对我来说,最终的解决方案是将export ....行添加到相应的kafka-server-start和zookeeper-server-start文件的开头。我花了一段时间才终于点击了“一切都是文件”,我意识到脚本文件是服务的实际基础。