Kafka SASL/SCRAM

Уже в тот день подряд я безуспешно пытался настроить SASL / SCRAM для Kafka. Буду благодарен всем, кто сможет помочь. У меня Kafka версии 2.5.0 - https://www.apache.org/dyn/closer.cgi?path=/kafka/2.5.0/kafka_2.12-2.5.0.tgz меня также есть последняя версия Zookeeper - https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz

Сначала я настроил zoo.cfg следующим образом:

dataDir=/home/duck/Public/zookeeper_logs
maxClientCnxns=0
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

Затем я создал jaas-файл zookeeper:

zookeeper_jaas.conf

Server {
   org.apache.kafka.common.security.scram.ScramLoginModule required
   username="admin"
   password="admin-secret"
   user_admin="admin-secret";
};
QuorumServer {
       org.apache.zookeeper.server.auth.DigestLoginModule required
       user_admin="admin-secret";
};

QuorumLearner {
       org.apache.zookeeper.server.auth.DigestLoginModule required
       username="admin"
    password="admin-secret"
    user_admin="admin-secret";
};

Затем я настроил jvm: SERVER_JVMFLAGS = "- Djava.security.auth.login.config = / home / duck / Public / zookeeper / zk_jaas.conf" После этого я запустил Zookeeper: $zkHome/bin/skServer.sh start

Затем я создал JAAS-файл для kafka:

kafka_server_jaas.conf:

KafkaServer {
   org.apache.kafka.common.security.scram.ScramLoginModule required
   username="admin"
   password="admin-secret"
   user_admin="admin-secret";
};



Client {
   org.apache.kafka.common.security.scram.ScramLoginModule required
   username="admin"
   password="admin-secret";
};

После того, как я выполнил:

export KAFKA_OPTS="-Djava.security.auth.login.config=/home/duck/Public/kafka/config/kafka_server_jaas.conf"

Настройки брокера Kafka следующие:

server.properties

############################# Server Basics #############################

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0

# Use below for SASL/SCRAM only (No SSL)
# For rest of the brokers change port (highlighted below) to 9091 and 9092
# Using SASL_PLAINTEXT as we do not have SSL
listeners=SASL_PLAINTEXT://localhost:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
sasl.enabled.mechanisms=SCRAM-SHA-256

############################# Socket Server Settings #############################
num.network.threads=3
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
############################# Log Basics #############################
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
############################# Internal Topic Settings  #############################
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1

############################# Log Retention Policy #############################
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

############################# Zookeeper #############################
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=18000
  • Если важно, использую Java-13. После всех настроек сервер Kafka запускается и даже некоторое время работает, после чего выдает ошибки следующего вида:

    [2020-06-03 20: 23: 30,096] INFO Среда клиента:java.io.tmpdir=/tmp (org.apache.zookeeper.ZooKeeper) [2020-06-03 20:23:30,097] INFO Среда клиента:java.compiler= (org.apache.zookeeper.ZooKeeper)[2020-06-03 20: 23: 30,097] ИНФОРМАЦИЯ Среда клиента: os.name= Linux (org.apache.zookeeper.ZooKeeper)[2020-06-03 20: 23: 30,097] INFO Среда клиента: os.arch = amd64 (org.apache.zookeeper.ZooKeeper)[2020-06-03 20: 23: 30,097] INFO Среда клиента: os.version = 5.3.0-55-generic (org.apache.zookeeper.ZooKeeper)[2020-06-03 20: 23: 30,097] ИНФОРМАЦИЯ Среда клиента: user.name=duck (org.apache.zookeeper.ZooKeeper)[2020-06-03 20:23: 30,097] INFO Клиентская среда: user.home= / home / duck (org.apache.zookeeper.ZooKeeper)[2020-06-03 20: 23: 30,097] INFO Клиентская среда: user.dir = / home / duck / Public / kafka (org.apache.zookeeper.ZooKeeper)[2020-06-03 20:23:30,097] ИНФОРМАЦИЯ Среда клиента:os.memory.free=980 МБ (org.apache.zookeeper.ZooKeeper)[2020-06-03 20: 23: 30,097] ИНФОРМАЦИЯ Среда клиента:os.memory.max=1024 МБ (org.apache.zookeeper.ZooKeeper) [2020-06-03 20:23:30,098] ИНФОРМАЦИЯ Среда клиента: os.memory.total=1024 МБ (org.apache.zookeeper.ZooKeeper) [2020-06-03 20:23:30,101] ИНФОРМАЦИЯ Начало клиентское соединение, connectString=localhost:2181 sessionTimeout=18000 watcher=kafka.zookeeper.ZooKeeperClient$ZooKeeperClientWatcher$@24105dc5 (org.apache.zookeeper.ZooKeeper) [2020-06-03 20:23:30,108] Значение INFO jute.maxbuffer 4194304 байта (org.apache.zookeeper.ClientCnxnSocket) [2020-06-03 20:23:30,116] INFO значение zookeeper.request.timeout равно 0. Функция включена = (org.apache.zookeeper.ClientCnxn) [2020-06-03 20:23:30,120] ИНФОРМАЦИЯ [сервер ZooKeeperClient Kafka] Ожидание подключения. (kafka.zookeeper.ZooKeeperClient) [2020-06-03 20:23:30,187] INFO Клиент успешно вошел в систему. (Org.apache.zookeeper.Login) [2020-06-03 20:23:30,190] INFO Клиент будет использовать DIGEST-MD5 как SASL механизм. (org.apache.zookeeper.client.ZooKeeperSaslClient) [2020-06-03 20:23:30,194] ИНФОРМАЦИЯ Открытие сокетного соединения с сервером localhost/127.0.0.1:2181. Попытка SASL-аутентификации с использованием раздела контекста входа "Клиент" (org.apache.zookeeper.ClientCnxn)[2020-06-03 20: 23: 30,202] ИНФОРМАЦИЯ Произошла ошибка сокета: localhost/127.0.0.1:2181: В соединении отказано (org.apache.zookeeper.ClientCnxn)[2020-06-03 20: 23: 31,307] ИНФОРМАЦИЯ Клиент успешно выполнил вход. (org.apache.zookeeper.Login)[2020-06-03 20: 23: 31,307] ИНФОРМАЦИЯ Клиент будет использовать DIGEST-MD5 как механизм SASL. (org.apache.zookeeper.client.ZooKeeperSaslClient)[2020-06-03 20:23:31,309] ИНФОРМАЦИЯ Открытие сокетного соединения с сервером localhost/127.0.0.1:2181. Попытка SASL-аутентификации с использованием раздела контекста входа "Клиент" (org.apache.zookeeper.ClientCnxn)[2020-06-03 20: 23: 31,310] ИНФОРМАЦИЯ Произошла ошибка сокета: localhost/127.0.0.1:2181: В соединении отказано (org.apache.zookeeper.ClientCnxn)[2020-06-03 20: 23: 32,413] INFO Клиент успешно вошел в систему. (org.apache.zookeeper.Login)[2020-06-03 20:23: 32,414] INFO Клиент будет использовать DIGEST-MD5 как механизм SASL. (org.apache.zookeeper.client.ZooKeeperSaslClient) [2020-06-03 20: 23: 32,415] ИНФОРМАЦИЯ Открытие сокетного соединения с сервером localhost/127.0.0.1:2181. Попытка SASL-аутентификации с использованием раздела контекста входа "Клиент" (org.apache.zookeeper.ClientCnxn)[2020-06-03 20: 23: 32,416] ИНФОРМАЦИЯ Произошла ошибка сокета: localhost/127.0.0.1:2181: В соединении отказано (org.apache.zookeeper.ClientCnxn) [2020-06-03 20:23:33,519] INFO Клиент успешно вошел в систему. (org.apache.zookeeper.Login) [2020-06-03 20:23:33,519] INFO Клиент будет использовать DIGEST-MD5 как механизм SASL. (org.apache.zookeeper.client.ZooKeeperSaslClient) [2020-06-03 20:23:33,522] ИНФОРМАЦИЯ Открытие сокетного подключения к серверу localhost/127.0.0.1:2181. Попытка SASL-аутентификации с использованием раздела контекста входа "Клиент" (org.apache.zookeeper.ClientCnxn) [2020-06-03 20:23:33,523] ИНФОРМАЦИЯ Произошла ошибка сокета: localhost/127.0.0.1:2181: В соединении отказано (org.apache.zookeeper.ClientCnxn)522] ИНФОРМАЦИЯ Открытие сокетного соединения с сервером localhost/127.0.0.1:2181. Попытка SASL-аутентификации с использованием раздела контекста входа "Клиент" (org.apache.zookeeper.ClientCnxn) [2020-06-03 20:23:33,523] ИНФОРМАЦИЯ Произошла ошибка сокета: localhost/127.0.0.1:2181: В соединении отказано (org.apache.zookeeper.ClientCnxn)522] ИНФОРМАЦИЯ Открытие сокетного соединения с сервером localhost/127.0.0.1:2181. Попытка SASL-аутентификации с использованием раздела контекста входа "Клиент" (org.apache.zookeeper.ClientCnxn) [2020-06-03 20:23:33,523] ИНФОРМАЦИЯ Произошла ошибка сокета: localhost/127.0.0.1:2181: В соединении отказано (org.apache.zookeeper.ClientCnxn)

    [2020-06-03 20: 23: 34,626] INFO Клиент успешно вошел в систему. (Org.apache.zookeeper.Login) [2020-06-03 20:23:34,626] INFO Клиент будет использовать DIGEST-MD5 в качестве механизма SASL. (org.apache.zookeeper.client.ZooKeeperSaslClient) [2020-06-03 20:23:34,628] ИНФОРМАЦИЯ Открытие сокетного подключения к серверу localhost/127.0.0.1:2181. Попытка SASL-аутентификации с использованием раздела контекста входа "Клиент" (org.apache.zookeeper.ClientCnxn) [2020-06-03 20:23:34,629] ИНФОРМАЦИЯ Произошла ошибка сокета: localhost/127.0.0.1:2181: В соединении отказано (org.apache.zookeeper.ClientCnxn)

    [2020-06-03 20: 23: 35,445] INFO Завершение процесса из-за сигнала SIGINT (org.apache.kafka.common.utils.LoggingSignalHandler) [2020-06-03 20:23:35,450] INFO завершение работы (kafka.server.KafkaServer) [2020-06-03 20:23:35,455] ОШИБКА Неустранимая ошибка при завершении работы KafkaServer. (kafka.server.KafkaServer) java.lang.IllegalStateException: сервер Kafka все еще запускается, не может быть выключен! в kafka.server.KafkaServer.shutdown(KafkaServer.scala:602) в kafka.server.KafkaServerStartable.shutdown(KafkaServerStartable.scala:54) в kafka.Kafka$.$anonfun$main$3(80) в kafka.scala:.utils.Exit$.$anonfun$addShutdownHook$1(Exit.scala:38) в java.base/java.lang.Thread.run(Thread.java:830) [2020-06-03 20:23:35,459] ОШИБКА Остановка Кафки. (kafka.server.KafkaServerStartable)

0 ответов

Другие вопросы по тегам