Kafka UI Login module control flag not specified in JAAS config

717 Views Asked by At

I would like to deploy a kafka with docker-compose, so I deployed Kafka (using bitnami docker image) and Kafka UI same network with Docker compose
I am facing same issue when use provectuslabs/kafka-ui:latest to connect to my kafka with SASL_SSL.

  kafka-0:
    container_name: kafka-0
    image: bitnami/kafka:latest
    #hostname: kafka0.abc.xyz.com
    ports:
      - 9092:9092
      - 9093:9093
      - 29092:29092
    environment:
      - ALLOW_PLAINTEXT_LISTENER=no
      - KAFKA_CERTIFICATE_PASSWORD=secret
      - KAFKA_CFG_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM=
      - KAFKA_CFG_LISTENERS=INTERNAL://kafka-0:29092,CLIENT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_ADVERTISED_LISTENERS=INTERNAL://kafka-0:29092,CLIENT://:9092
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:SASL_SSL,CLIENT:SASL_SSL,CONTROLLER:PLAINTEXT
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL
      - KAFKA_CFG_SASL_ENABLED_MECHANISMS=PLAIN # SCRAM-SHA-256
      - KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN # SCRAM-SHA-256
      - KAFKA_SSL_CLIENT_AUTH=required
      - KAFKA_INTER_BROKER_USER=kafka-client
      - KAFKA_INTER_BROKER_PASSWORD=AS1ISO76cF6gtMBqTvjbYMnEfzkf9q8k
      - KAFKA_HEAP_OPTS=-Xmx256m -Xms256m
      - BITNAMI_DEBUG=true
    volumes:
      - './_config/kafka/certs/kafka.keystore.jks:/opt/bitnami/kafka/config/certs/kafka.keystore.jks:ro'
      - './_config/kafka/certs/kafka.truststore.jks:/opt/bitnami/kafka/config/certs/kafka.truststore.jks:ro'
      - kafka-0-data:/bitnami/kafka
    networks:
      - kafka-tools

  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:latest
    ports:
      - 8080:8080
    depends_on:
      - kafka-0
    environment:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka-0:29092
      - KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL=SASL_SSL
      - KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM=PLAIN
      - KAFKA_CLUSTERS_0_PROPERTIES_CLIENT_DNS_LOOKUP=use_all_dns_ips
      - KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG='org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka-client" password="AS1ISO76cF6gtMBqTvjbYMnEfzkf9q8k";'
    networks:
      - kafka-tools

The kafka-0 service is fine. I get the issue with kafka-ui service as below:

kafka-ui    | 2023-05-29 10:17:12,204 INFO  [parallel-1] o.a.k.c.m.Metrics: Metrics scheduler closed
kafka-ui    | 2023-05-29 10:17:12,204 INFO  [parallel-1] o.a.k.c.m.Metrics: Closing reporter org.apache.kafka.common.metrics.JmxReporter
kafka-ui    | 2023-05-29 10:17:12,204 INFO  [parallel-1] o.a.k.c.m.Metrics: Metrics reporters closed
kafka-ui    | 2023-05-29 10:17:12,204 ERROR [parallel-1] c.p.k.u.s.StatisticsService: Failed to collect cluster local info
kafka-ui    | java.lang.IllegalStateException: Error while creating AdminClient for Cluster local
kafka-ui    |   at com.provectus.kafka.ui.service.AdminClientServiceImpl.lambda$createAdminClient$5(AdminClientServiceImpl.java:56)
kafka-ui    |   at reactor.core.publisher.Mono.lambda$onErrorMap$28(Mono.java:3773)
kafka-ui    |   at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)
kafka-ui    |   at reactor.core.publisher.Operators.error(Operators.java:198)
kafka-ui    |   at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:135)
kafka-ui    |   at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53)
kafka-ui    |   at reactor.core.publisher.Mono.subscribe(Mono.java:4470)
kafka-ui    |   at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82)
kafka-ui    |   at reactor.core.publisher.Operators.complete(Operators.java:137)
kafka-ui    |   at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
kafka-ui    |   at reactor.core.publisher.Mono.subscribe(Mono.java:4485)
kafka-ui    |   at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427)
kafka-ui    |   at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:440)
kafka-ui    |   at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:527)
kafka-ui    |   at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
kafka-ui    |   at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
kafka-ui    |   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
kafka-ui    |   at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
kafka-ui    |   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
kafka-ui    |   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
kafka-ui    |   at java.base/java.lang.Thread.run(Thread.java:833)
kafka-ui    | Caused by: org.apache.kafka.common.KafkaException: Failed to create new KafkaAdminClient
kafka-ui    |   at org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:553)
kafka-ui    |   at org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:485)
kafka-ui    |   at org.apache.kafka.clients.admin.Admin.create(Admin.java:134)
kafka-ui    |   at org.apache.kafka.clients.admin.AdminClient.create(AdminClient.java:39)
kafka-ui    |   at com.provectus.kafka.ui.service.AdminClientServiceImpl.lambda$createAdminClient$2(AdminClientServiceImpl.java:53)
kafka-ui    |   at reactor.core.publisher.MonoSupplier.call(MonoSupplier.java:67)
kafka-ui    |   at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:127)
kafka-ui    |   ... 16 common frames omitted
kafka-ui    | Caused by: java.lang.IllegalArgumentException: Login module control flag not specified in JAAS config
kafka-ui    |   at org.apache.kafka.common.security.JaasConfig.parseAppConfigurationEntry(JaasConfig.java:110)
kafka-ui    |   at org.apache.kafka.common.security.JaasConfig.<init>(JaasConfig.java:63)
kafka-ui    |   at org.apache.kafka.common.security.JaasContext.load(JaasContext.java:88)
kafka-ui    |   at org.apache.kafka.common.security.JaasContext.loadClientContext(JaasContext.java:82)
kafka-ui    |   at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:167)
kafka-ui    |   at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:81)
kafka-ui    |   at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:105)
kafka-ui    |   at org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:524)
kafka-ui    |   ... 22 common frames omitted
kafka-ui    | 2023-05-29 10:17:12,205 DEBUG [parallel-1] c.p.k.u.s.ClustersStatisticsScheduler: Metrics updated for cluster: local

If you have any suggestions, please let me know.

Thanks all

0

There are 0 best solutions below