kafka-manager无法从kafka docker JMX端口中读取暴露

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

我无法让我的kafka经理显示消息数据/指标。我使用以下命令在本地运行kafka-manager,

 bin/kafka-manager -Dkafka-manager.zkhosts="localhost:2181"

此外,我正在检查启动选项启用JMX轮询。

我正在向kafka经纪人发布关于以下主题的消息:test .Kafka-manager视图能够显示主题“test”但不显示消息count / metrics等.kafka-manager应用程序抛出一个异常,其中说:

[error] k.m.a.c.OffsetCachePassive - [topic=logstash_topic] An error has occurred while getting topic offsets from broker List((BrokerIdentity(1,kafka-1,9092,9999,false),0))
java.nio.channels.ClosedChannelException: null
at kafka.network.BlockingChannel.send(BlockingChannel.scala:110) ~[org.apache.kafka.kafka_2.11-0.10.0.1.jar:na]
at kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:98) ~[org.apache.kafka.kafka_2.11-0.10.0.1.jar:na]
at kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:83) ~[org.apache.kafka.kafka_2.11-0.10.0.1.jar:na]
at kafka.consumer.SimpleConsumer.getOffsetsBefore(SimpleConsumer.scala:149) ~[org.apache.kafka.kafka_2.11-0.10.0.1.jar:na]
at kafka.manager.actor.cluster.OffsetCache$$anonfun$19$$anonfun$21$$anonfun$22.apply(KafkaStateActor.scala:415) ~[kafka-manager.kafka-manager-1.3.3.7-sans-externalized.jar:na]
at kafka.manager.actor.cluster.OffsetCache$$anonfun$19$$anonfun$21$$anonfun$22.apply(KafkaStateActor.scala:412) ~[kafka-manager.kafka-manager-1.3.3.7-sans-externalized.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[org.scala-lang.scala-library-2.11.8.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[org.scala-lang.scala-library-2.11.8.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_161]
[info] k.m.a.KafkaManagerActor - Updating internal state...
[info] k.m.a.c.BrokerViewCacheActor - Updating broker view...
[info] k.m.a.KafkaManagerActor - Updating internal state...
[error] k.m.j.KafkaJMX$ - Failed to connect to service:jmx:rmi:///jndi/rmi://kafka-1:9999/jmxrmi 
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: kafka-1; nested exception is:
java.net.ConnectException: Operation timed out (Connection timed out)]
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:369) ~[na:1.8.0_161]
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270) ~[na:1.8.0_161]
at kafka.manager.jmx.KafkaJMX$.doWithConnection(KafkaJMX.scala:57) ~[kafka-manager.kafka-manager-1.3.3.7-sans-externalized.jar:na]

我的zookeeper和kafka实例是通过docker-compose up -d运行的。

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

    zookeeper:
    image: confluentinc/cp-zookeeper:latest
    hostname: zookeeper
    environment:
      ZOOKEEPER_SERVER_ID: 1
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    ports:
      - "2181:2181"

  kafka-1:
    image: confluentinc/cp-kafka:latest
    hostname: kafka-1
    depends_on:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:9092
      KAFKA_JMX_HOSTNAME: kafka-1
      KAFKA_JMX_PORT: 9999
      KAFKA_JMX_OPTS: "-Djava.rmi.server.hostname=kafka-1 - 
   Dcom.sun.management.jmxremote.local.only=false - 
   Dcom.sun.management.jmxremote.rmi.port=9999 - 
   Dcom.sun.management.jmxremote.port=9999 - 
   Dcom.sun.management.jmxremote.authenticate=false - 
   Dcom.sun.management.jmxremote.ssl=false"
   ports:
      - "9092:9092"
      - "9999:9999"

真的卡在这一个。感谢任何形式的帮助。谢谢。

apache-kafka port jmx yahoo-kafka-manager
1个回答
1
投票

谢谢你user7222071,设法让我的代码工作后我把“ - ”移动到KAFKA_JMX_OPTS的下一行

  kafka-1:
    image: confluentinc/cp-kafka:5.1.2
    volumes:
      - kafka-1:/var/lib/kafka/data
    ports:
      - 19092:19092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:19092
      KAFKA_JMX_HOSTNAME: "kafka-1"
      KAFKA_JMX_PORT: 9999
      KAFKA_JMX_OPTS: "-Djava.rmi.server.hostname=kafka-1 
      -Dcom.sun.management.jmxremote.local.only=false 
      -Dcom.sun.management.jmxremote.rmi.port=9999 
      -Dcom.sun.management.jmxremote.port=9999 
      -Dcom.sun.management.jmxremote.authenticate=false 
      -Dcom.sun.management.jmxremote.ssl=false"
    extra_hosts:
      - "moby:127.0.0.1"

  kafka-manager:
    image: kafkamanager/kafka-manager:latest
    ports:
      - 9000:9000
    environment:
      ZK_HOSTS: zookeeper-1:2218
© www.soinside.com 2019 - 2024. All rights reserved.