В нашей компании мы пытаемся настроить 3node Kafka кластер с SSL-шифрованием и аутентификацией SASL / Kerberos. Ниже то, что я сделал.
broker1, broker2, broker3 - мои имена хостов для 3 серверов kafka, а "kerberosServer" - это имя хоста сервера kerberos.
Я создал 3 принципа для kerberosServer: kafka/broker1@EXAMPLE.COM, kafka/broker2@EXAMPLE.COM, kafka/broker3@EXAMPLE.COM, создал таблицу ключей с именем kafka-server.keytab и добавил все вышеперечисленное. 3 принципа для kafka-server.keytab
Я могу вызвать кластер кафки. Но когда я пытаюсь создать несколько сообщений от клиента kafka, я получаю сообщение об ошибке ниже:
ОШИБКА Ошибка при отправке сообщения в тему теста с ключом: ноль, значение: 6 байт с ошибкой: не удалось обновить метаданные после 60000 мс. (Org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
Я использую сервер Kerberos в качестве клиента kafka, и я создал новую таблицу ключей для клиента с именем kafka_client.keytab и добавил новый принцип, называемый kafka-client/kerberosServer@EXAMPLE.COM. и ниже мои данные клиента:
файл client-sasl.properties:
security.protocol=SASL_SSL
sasl.kerberos.service.name=kafka
ssl.truststore.location=/opt/ssl/kafka.client.truststore.jks
ssl.truststore.password=affirmed
kafka_client_jaas.conf:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required debug=true
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/kafka_client.keytab"
principal="kafka-client/kerberosServer@EXAMPLE.COM";
};
при выполнении команды ниже, я получаю сообщение об ошибке
./kafka-console-producer.sh --broker-list broker1:9094,broker2:9094,broker3:9094 --topic test --producer.config ../config/client-sasl.properties
Debug is true storeKey true useTicketCache false useKeyTab true doNotPrompt false ticketCache is null isInitiator true KeyTab is /etc/security/keytabs/kafka_client.keytab refreshKrb5Config is false principal is kafka-client/kerberosServer@EXAMPLE.COM tryFirstPass is false useFirstPass is false storePass is false clearPass is false
principal is kafka-client/kerberosServer@EXAMPLE.COM
Will use keytab
Commit Succeeded
sasllll
[2018-04-24 17:41:49,214] ERROR Error when sending message to topic test with key: null, value: 7 bytes with error: Failed to update metadata after 60000 ms. (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)