我正在尝试让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,这就是发生错误的时间。
任何帮助表示赞赏。
为了完整起见,以下是可行的解决方案:
我按以下方式运行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)即可添加其他项,它现在可以工作。
谢谢您的帮助!