一尘不染

在boot2docker中的docker中运行kafka时使用JMX监视kafka

docker

我正在尝试让JMX监视工作以监视测试kafka实例。

我有通过boot2docker在docker中运行的kafka(ches /
kafka),但我无法正确配置JMX监视。我已经做了很多故障排除,而且我知道kafka实例运行正常(消费者和生产者都在工作)。当我尝试简单的JMX工具(jconsole和jvisualvm)并且都无法连接(不安全的连接错误,连接失败)时,就会出现问题。

注意的配置项:我连接到192.168.59.103(运行’boot2docker ip’时发现的virtualbox ip),并且ches / kafka
docker /
kafka实例使用端口7203作为JMX_PORT(在kafka启动日志中已确认)。使用jconsole,我连接到192.168.59.103:7203,这就是发生错误的时间。

任何帮助表示赞赏。


阅读 620

收藏
2020-06-17

共1个答案

一尘不染

为了完整起见,以下是可行的解决方案:

我按以下方式运行ches / kafka docker映像-请注意,现在已正确发布了JMX_PORT(7203):

$ docker run --hostname localhost --name kafka --publish 9092:9092 --publish 7203:7203 --env EXPOSED_HOST=192.168.59.103 --env ZOOKEEPER_IP=192.168.59.103 ches/kafka

另外,在kafka-run-class.sh(Windows的.bat)中设置了以下环境

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

但是我需要添加一个额外的项目(感谢其中一位评论者指出):

-Dcom.sun.management.jmxremote.rmi.port=7203

现在,要在boot2docker中运行ches /
docker映像,您只需要设置一个公认的环境变量(KAFKA_JMX_OPTS或KAKFA_OPTS)即可添加其他项,它现在可以工作。

谢谢您的帮助!

2020-06-17