Вопрос или проблема
Не могу настроить advertised.listeners для AWS MSK Kafka, может кто-нибудь объяснить, что делать дальше? Как это сделать?
Для брокера 1
bin/kafka-configs.sh –bootstrap-server b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9094
–entity-type brokers –entity-name 1 –alter –command-config client.properties
–add-config advertised.listeners=[INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094]
Для брокера 2
bin/kafka-configs.sh –bootstrap-server b-2.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9094
–entity-type brokers –entity-name 2 –alter –command-config client.properties
–add-config advertised.listeners=[INTERNAL://b-2.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9095],
все работает отлично здесь
bin/kafka-topics.sh –list –bootstrap-server b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096 –command-config client.properties
__amazon_msk_canary
__consumer_offsets
test-topic-1
здесь я сталкиваюсь с проблемой
[ec2-user@ip-10-1-1-98 kafka_2.13-3.5.1]$ bin/kafka-configs.sh –bootstrap-server b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096
–entity-type brokers –entity-name 1 –alter –command-config client.properties
–add-config advertised.listeners=[INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094]
Ошибка при выполнении команды конфигурации с аргументами ‘–bootstrap-server b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096 –entity-type brokers –entity-name 1 –alter –command-config client.properties –add-config advertised.listeners=[INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094]’
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.InvalidRequestException: Ошибка создания слушателей брокера из ‘INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094’: Нет определённого протокола безопасности для слушателя INTERNAL
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2028)
at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:180)
at kafka.admin.ConfigCommand$.alterConfig(ConfigCommand.scala:380)
at kafka.admin.ConfigCommand$.processCommand(ConfigCommand.scala:328)
at kafka.admin.ConfigCommand$.main(ConfigCommand.scala:97)
at kafka.admin.ConfigCommand.main(ConfigCommand.scala)
Причина: org.apache.kafka.common.errors.InvalidRequestException: Ошибка создания слушателей брокера из ‘INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094’: Нет определённого протокола безопасности для слушателя INTERNAL
здесь я сталкиваюсь с проблемой\
[ec2-user@ip-10-1-1-98 kafka_2.13-3.5.1]$ bin/kafka-configs.sh --bootstrap-server b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096 \
--entity-type brokers --entity-name 1 --alter --command-config client.properties \
--add-config advertised.listeners=[INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094],listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL
требование не выполнено: Некорректная конфигурация сущности: все добавляемые конфигурации должны быть в формате "key=val".
[ec2-user@ip-10-1-1-98 kafka_2.13-3.5.1]$
я пытаюсь установить мой DNS NLB для моих брокеров aws msk kafka
Ответ или решение
Чтобы настроить параметры advertised.listeners для Amazon MSK (Managed Streaming for Apache Kafka), вам необходимо учитывать несколько моментов, чтобы избежать возникших ошибок. Ошибка, с которой вы столкнулись, связана с отсутствием правильного определения протокола безопасности для слушателей. Давайте разберем шаги, которые необходимо выполнить для успешной настройки.
Шаги для настройки advertised.listeners в AWS MSK
-
Подготовка команд: Ваша основная задача – установить правильные параметры для advertised.listeners и обеспечить соответствие между этими параметрами и протоколами безопасности, которые у вас настроены на брокерах. Убедитесь, что вы используете правильный формат.
-
Настройка advertised.listeners:
Вам нужно использовать форматkey=value
для добавления конфигураций. Например:--add-config advertised.listeners=INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094
-
Настройка безопасности: Вам также нужно определить протокол безопасности для каждого из слушателей:
--add-config listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL
Обратите внимание, что это должно быть добавлено в команду как отдельный параметр.
-
Объединение конфигураций: Попробуйте изменить вашу команду изменения конфигурации, объединяя оба параметра правильно:
bin/kafka-configs.sh --bootstrap-server b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096 \ --entity-type brokers --entity-name 1 --alter --command-config client.properties \ --add-config advertised.listeners=INTERNAL://b-1.kaffka.6r40l0.c4.kafka.eu-central-1.amazonaws.com:9096,EXTERNAL://MSK-kafka-Loadbalancer-25831a7b958a5031.elb.eu-central-1.amazonaws.com:9094,listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL
-
Проверка условий безопасности: Если вы по-прежнему получаете ошибки, убедитесь, что все ваши брокеры настроены на использование SSL. Проверьте параметры вашей конфигурации клиента (в файле client.properties) и убедитесь, что они соответствуют тем же уровням безопасности, которые вы задаете.
- Использование корректного порта: Убедитесь, что вы используете правильные порты для каждого из слушателей. Например, INTERNAL слушатель обычно работает на порту 9096, а EXTERNAL – на порту 9094.
Заключение
Следуя вышеуказанным шагам, вы сможете успешно настроить advertised.listeners для ваших брокеров в AWS MSK. Если после этих шагов проблема сохраняется, возможно, стоит проверить логи брокеров на наличие специфических ошибок или провести более углубленный анализ конфигурации сети.
Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать!