Kafka配置完SASL后,Kafka可以启动,但是broker无法使用

花生 发表于: 2018-04-10   最后更新时间: 2019-11-11 14:42:38   7,512 游览

zk集群有三台,Kafka集群有两台,分别为192.168.1.163和162,kafka版本为 kafka_2.12-1.1.0.tgz,想要配置安全验证

server.properties文件中配置了

listeners=SASL_PLAINTEXT://192.168.1.163:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
authorizer.class.name = kafka.security.auth.SimpleAclAuthorizer
super.users=User:admin;User:alice

config目录下配置了kafka_server_jaas和kafka_client_jaas文件,内容分别问

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin"
    user_admin="admin"
    user_alice="alice";
};

KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin";
};

kafka-run-class.sh文件中末尾添加和修改了

KAFKA_SASL_OPTS='-Djava.security.auth.login.config=/usr/local/kafka_2.12-1.1.0/config/kafka_server_jaas.conf'
# Launch mode
if [ "x$DAEMON_MODE" = "xtrue" ]; then
  nohup $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_SASL_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" > "$CONSOLE_OUTPUT_FILE" 2>&1 < /dev/null &
else
  exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_SASL_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
fi

这些,就是添了个环境变量

kafka-console-producer.sh和kafka-console-consumer.sh 文件中,分别添加了

System.setProperty("java.security.auth.login.config", "../config/kafka_client_jaas.conf");
props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");

这些参数

运行的时候,可以创建topic,但是当用

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

命令连接时,会发生

WARN [Producer clientId=console-producer] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

的错误

用python代码连接的话也会报kafka.errors.NoBrokersAvailable: NoBrokersAvailable的错误,

请问这是什么原因啊,十分感谢

发表于 2018-04-10
添加评论

你好,这个问题你是怎么解决的?我也遇到了同样的问题,还请百忙之中解答一下。

解决了吗0 0

这个问题搞定了吗?我现在也遇到了。。。

他这个是kafka配置了sasl之后,都没有起来,所以要看broker的日志,里面有失败的原因。
可以参考sasl的实战笔记:
https://www.orchome.com/1960
https://www.orchome.com/1966

你先比对下安装笔记,我现在在忙。
https://www.orchome.com/500

花生 -> 半兽人 6年前

好的,十分感谢.

作者:半兽人
链接:https://www.orchome.com/1944
来源:OrcHome
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

java.io.IOException: Connection to node01:9092 (id: 1001 rack: null) failed.
at org.apache.kafka.clients.NetworkClientUtils.awaitReady(NetworkClientUtils.java:71)
at kafka.controller.RequestSendThread.brokerReady(ControllerChannelManager.scala:292)
at kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:246)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:96)

开启kafka的kerbeors和sasl报的错
请问怎么解决

你单独提个问题吧,核心的错误都需要提供。

你的答案

查看kafka相关的其他问题或提一个您自己的问题