为什么我无法将 Kafka 作为 Java 代理启动

问题描述 投票:0回答:1

当使用此撰写文件将 Kafka 作为 Java 代理启动时,我遇到了 JMX 问题:

  broker:
    image: confluentinc/cp-kafka:7.5.0
    hostname: broker
    container_name: broker
    ports:
      - "9092:9092"
      - "9101:9101"
    volumes:
      - ./jmx-exporter:/usr/share/jmx_exporter
    environment:
      KAFKA_NODE_ID: 1
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
      KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092'
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: broker:29092
      KAFKA_JMX_PORT: 9101
      KAFKA_PROCESS_ROLES: 'broker,controller'
      KAFKA_CONTROLLER_QUORUM_VOTERS: '1@broker:29093'
      KAFKA_LISTENERS: 'PLAINTEXT://broker:29092,CONTROLLER://broker:29093,PLAINTEXT_HOST://0.0.0.0:9092'
      KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
      KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
      KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'
      CLUSTER_ID: 'MkU3OEVBNTcwNTJENDM2Qk'
      EXTRA_ARGS:
        -javaagent:/usr/share/jmx-exporter/jmx_prometheus_javaagent-0.20.0.jar=1234:/usr/share/jmx-exporter/zookeeper.yml
        -javaagent:/usr/share/jmx-exporter/jolokia-jvm-1.7.1.jar=port=1235,host=*
        -Djava.util.logging.config.file=/usr/share/jmx-exporter/exporter_debug_logging.properties

我的问题是:

broker                        | Error opening zip file or JAR manifest missing : /usr/share/jmx-exporter/jmx_prometheus_javaagent-0.20.0.jar
broker                        | Error occurred during initialization of VM
broker                        | agent library failed to init: instrument

我在互联网上搜索了很多,但我可以找到解决我的问题的方法

java docker apache-kafka javaagents jmx-exporter
1个回答
0
投票

我也有类似的问题。也许以下几点会对您有所帮助:

  1. 首先,检查容器内的 jar 是否可执行。如果没有,请使用“chmod +x”修复它。

  2. 还检查谁拥有罐子。您的容器默认使用(可能)“appuser”用户,并且没有执行 jar 的权限。如果是这样,您需要将 jars 的所有者更改为 appuser。

© www.soinside.com 2019 - 2024. All rights reserved.