docker-compose脚本
version: "2"
services:
zookeeper:
image: docker.io/bitnami/zookeeper:3.8
ports:
- "12181:2181"
volumes:
- "/mydata/zookeeper:/bitnami"
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: docker.io/bitnami/kafka:3.1
ports:
- "19092:9092"
- "9999:9999"
volumes:
- "/mydata/kafka:/bitnami"
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- JMX_PORT=9999
depends_on:
- zookeeper
volumes:
zookeeper_data:
driver: local
kafka_data:
driver: local
启动命令
docker-compose -f docker-compose.yaml up -d
eagle报错
[2022-04-21 21:52:00] Mx4jServiceImpl.Thread-317 - ERROR - JMX service url[8689eabbf254:-1] create has error,msg is
java.lang.ClassCastException: java.io.IOException cannot be cast to javax.management.remote.JMXConnector
at org.smartloli.kafka.eagle.common.util.JMXFactoryUtils.connectWithTimeout(JMXFactoryUtils.java:103)
at org.smartloli.kafka.eagle.core.factory.Mx4jServiceImpl.common(Mx4jServiceImpl.java:231)
at org.smartloli.kafka.eagle.core.factory.Mx4jServiceImpl.produceMessageConversionsPerSec(Mx4jServiceImpl.java:168)
at org.smartloli.kafka.eagle.web.quartz.MBeanSubTask$MbeanOfflineSubThread.kafkaMBeanOfflineAssembly(MBeanSubTask.java:429)
at org.smartloli.kafka.eagle.web.quartz.MBeanSubTask$MbeanOfflineSubThread.brokerMbeanOffline(MBeanSubTask.java:323)
at org.smartloli.kafka.eagle.web.quartz.MBeanSubTask$MbeanOfflineSubThread.run(MBeanSubTask.java:308)
[2022-04-21 21:52:00] KafkaServiceImpl.Thread-315 - ERROR - Get kafka os memory from jmx has error, msg is java.io.IOException cannot be cast to javax.management.remote.JMXConnector
[2022-04-21 21:52:00] KafkaServiceImpl.Thread-315 - ERROR - Get kafka os memory from jmx has error, msg is java.io.IOException cannot be cast to javax.management.remote.JMXConnector
[2022-04-21 21:52:00] KafkaServiceImpl.Thread-315 - ERROR - Get kafka broker used cpu value has error, msg is
java.lang.ClassCastException: java.io.IOException cannot be cast to javax.management.remote.JMXConnector
at org.smartloli.kafka.eagle.common.util.JMXFactoryUtils.connectWithTimeout(JMXFactoryUtils.java:103)
at org.smartloli.kafka.eagle.core.factory.KafkaServiceImpl.getUsedCpuValue(KafkaServiceImpl.java:1706)
at org.smartloli.kafka.eagle.web.quartz.MBeanSubTask$KafkaClusterSubThread.kafkaAssembly(MBeanSubTask.java:214)
at org.smartloli.kafka.eagle.web.quartz.MBeanSubTask$KafkaClusterSubThread.kafkaCluster(MBeanSubTask.java:121)
at org.smartloli.kafka.eagle.web.quartz.MBeanSubTask$KafkaClusterSubThread.run(MBeanSubTask.java:104)
你需要指定容器的hostname,如:
-Djava.rmi.server.hostname=设备的ip
但docker容器内的ip是随机的,你需要动态的设置ip,如:
-Djava.rmi.server.hostname=$(hostname -i)
你的答案