我有一个基本的docker编写文件,用于wurstmeister/kafka
我试图将其配置为使用sasl\u-plain和ssl,但是无论我用多少种方法指定jaas文件,我都会遇到这个错误
这就是我得到的错误
[2018-04-11 10:34:34,545] FATAL [KafkaServer id=1001] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
java.lang.IllegalArgumentException: Could not find a 'KafkaServer' or 'sasl_ssl.KafkaServer' entry in the JAAS configuration. System property 'java.security.auth.login.config' is not set
这些是我的战车。最后一个是我指定jaas文件的地方
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_HOST_NAME: 10.10.10.1
KAFKA_PORT: 9092
KAFKA_ADVERTISED_PORT: 9093
KAFKA_ADVERTISED_HOST_NAME: 10.10.10.1
KAFKA_LISTENERS: PLAINTEXT://:9092,SASL_SSL://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://10.10.10.1:9092,SASL_SSL://10.10.10.1:9093
KAFKA_SECURITY_INTER_BROKER_PROTOCOL: SASL_SSL
KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
KAFKA_SSL_TRUSTSTORE_LOCATION: /kafka.server.truststore.jks
KAFKA_SSL_TRUSTSTORE_PASSWORD: password
KAFKA_SSL_KEYSTORE_LOCATION: /kafka.server.keystore.jks
KAFKA_SSL_KEYSTORE_PASSWORD: password
KAFKA_SSL_KEY_PASSWORD: password
KAFKA_OPTS: '-Djava.security.auth.login.config=/path/kafka_server_jaas.conf'
当我试图查看docker日志时
/usr/bin/start-kafka.sh: line 96: KAFKA_OPTS=-Djava.security.auth.login.config: bad substitution
非常感谢您的帮助!
2条答案
按热度按时间2hh7jdfx1#
更新:他们已经修好了,现在合并了!
https://github.com/wurstmeister/kafka-docker/pull/321
wurstmeister/kafka现在有一个bug打开了,但是他们给了我一个解决方法,如下所示
我相信他是一个更大的名称空间冲突问题的一部分,这个问题会影响多个元素,比如kubernetes部署等(以及其他kafka服务设置)。
如果您正在引用一个外部文件/kafka\u server\u jaas.conf,我假设您可以通过添加/装载额外的文件;解决方法是指定一个自定义的\u init \u script环境变量,它应该是一个类似于以下内容的脚本:
这本可以内联完成,但是目前在处理环境的方式中存在一个bug,我们需要指定输入分隔符以使其正确工作。
希望这能奏效!
k3fezbri2#
最后一个值内的等于“=”导致此问题。
kafka\u选项:'-djava.security.auth.login.config=/path/kafka\u server\u jaas.conf'
这是我调试后得到的。
这是执行这个操作的一段代码。