我试图让JMX监控来监控一个测试kafka实例。
我有卡夫卡(千斤顶/卡夫卡)运行在码头通过boot2docker,但我不能得到正确配置的JMX监控。我已经做了大量的故障排除,我知道kafka实例正在正常运行(消费者和生产者都在工作)。当我尝试简单的JMX工具(j控制台和jvisualvm)而两者都无法连接(不安全的连接错误,连接失败)时,就会出现问题。
配置注意事项:我连接到192.168.59.103 (运行'boot2docker ip‘时发现的virtualbox ip),ches/boot2docker/ kafka实例使用端口7203作为JMX_PORT (在kafka启动日志中确认)。使用j控制台,我连接到192.168.59.103:7203,也就是错误发生的时候。
任何帮助都是非常感谢的。
发布于 2015-07-02 18:10:58
为了完整起见,以下是可行的解决方案:
我运行了ches/kafka码头图像如下--注意,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 (.bat for windows)中设置了以下环境
-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)来添加附加项,它现在就可以工作了。
谢谢你的帮助!
发布于 2015-07-01 20:46:12
卡夫卡坞端口没有理由绑定到boot2docker VM中的同一个端口,除非您指定了它。
尝试使用-p 7203:7203运行它,以强制端口的1:1转发。
https://stackoverflow.com/questions/31167823
复制相似问题