Предупреждение Kafka: sasl.jaas.config должен иметь префикс имени механизма SASL

#apache-kafka

#apache-kafka

Вопрос:

Хотя мой кластер Kafka работает нормально, все узлы выводят следующее предупреждение:

 WARN Server config sasl.jaas.config should be prefixed with SASL mechanism name,
ignoring config (org.apache.kafka.common.security.JaasContext)
  

Это мой server.properties файл:

 broker.id=0
zookeeper.connect=zk1.intra:2181,zk2.intra:2181,zk3.intra:2181
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol= SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";
super.users=User:admin
  

Я использую Kafka 2.5.1.

При точно такой же конфигурации в 2.5.0 такого предупреждения нет.

Ответ №1:

Из документации для sasl.jaas.config:

Для брокеров конфигурация должна иметь префикс прослушивателя и название механизма SASL в нижнем регистре. Например,

listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;

В примере из документации sasl.jaas.config часть имеет префикс имени механизма SASL listener.name.sasl_ssl.scram-sha-256.

Учитывая остальную часть вашей конфигурации, вы хотите использовать префикс listener.name.sasl_plaintext.plain. . Это:

listener.name.sasl_plaintext.plain.sasl.jaas.config= org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin" user_admin="admin";

Комментарии:

1. Попробовал ваше предложение, но на этот раз брокеры не запускаются и не выдают эту ошибку: KafkaServer id=0] Connection to node 1 (kafka2.intra/10.12.68.12:9092) failed authentication due to: Authentication failed: Invalid username or password (org.apache.kafka.clients.NetworkClient)

2. @RamazanPolat Я бы предположил, что в вашей конфигурации JAAS также необходимо настроить пароль для пользователя admin. Я думаю, что это что-то вроде этого: listener.name.sasl_plaintext.plain.sasl.jaas.config= org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin" user_admin="admin";