Kafka docker-NoSuchFileException:/opt/kafka.server.keystore.jks

我已经通过docker安装了Kafka。 当我运行docker-compose up命令时,我遇到以下错误:

 [2022-02-28 08:13:24,185] INFO Awaiting socket connections on localhost:9092. (kafka.network.Acceptor)

kafka        | [2022-02-28 08:13:24,216] ERROR Modification time of key store could not be obtained: /opt/kafka.server.keystore.jks (org.apache.kafka.common.security.ssl.DefaultSslEngineFactory)

kafka        | java.nio.file.NoSuchFileException: /opt/kafka.server.keystore.jks

kafka        |  at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)

kafka        |  at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)

kafka        |  at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)

kafka        |  at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)

kafka        |  at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)

kafka        |  at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)

kafka        |  at java.nio.file.Files.readAttributes(Files.java:1737)

kafka        |  at java.nio.file.Files.getLastModifiedTime(Files.java:2266)

kafka        |  at org.apache.kafka.common.security.ssl.DefaultSslEngineFactory$FileBasedStore.lastModifiedMs(DefaultSslEngineFactory.java:383)

ERROR Modification time of key store could not be obtained: /opt/kafka.server.keystore.jks

Failed to load SSL keystore /opt/kafka.server.keystore.jks of type JKS

下面是我的docker-compose.yml文件:

version: '3'

services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    depends_on:
      - zookeeper
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: 'SSL://localhost:9092'
      KAFKA_LISTENERS: 'SSL://localhost:9092'
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_SSL_KEYSTORE_LOCATION: '/opt/kafka.server.keystore.jks'
      KAFKA_SSL_KEYSTORE_PASSWORD: 'changeit'
      KAFKA_SSL_KEY_PASSWORD: 'changeit'
      KAFKA_SSL_TRUSTSTORE_LOCATION: '/home/ubuntu/kafka.server.truststore.jks'
      KAFKA_SSL_TRUSTSTORE_PASSWORD: 'changeit'
      KAFKA_SECURITY_INTER_BROKER_PROTOCOL: 'SSL'
    volumes:
      - ./server_certs:/certs

解决方案

将变量值更改为使用/certs

version: '3'

services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    depends_on:
      - zookeeper
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: 'SSL://localhost:9092'
      KAFKA_LISTENERS: 'SSL://localhost:9092'
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_SSL_KEYSTORE_LOCATION: '/certs/kafka.server.keystore.jks'
      KAFKA_SSL_KEYSTORE_PASSWORD: 'changeit'
      KAFKA_SSL_KEY_PASSWORD: 'changeit'
      KAFKA_SSL_TRUSTSTORE_LOCATION: '/certs/kafka.server.truststore.jks'
      KAFKA_SSL_TRUSTSTORE_PASSWORD: 'changeit'
      KAFKA_SECURITY_INTER_BROKER_PROTOCOL: 'SSL'
    volumes:
      - ./server_certs:/certs

相关文章