apache-kafka - 如何使用 kafka.tools.JmxTool 访问 JMX 指标?
问题描述
我无法使用 bin/kafka-run-class.sh kafka.tools.JmxTool 脚本获取 JMX 指标。但是,我可以使用 Jconsole 连接到进程。
我设置了以下属性:
com.sun.management.jmxremote = true
com.sun.management.jmxremote.authenticate = false
com.sun.management.jmxremote.local.only = false
com.sun.management.jmxremote.port = 9145
com.sun.management.jmxremote.ssl = false
例外:
? kafka_2.11-2.1.0/bin/kafka-run-class.sh kafka.tools.JmxTool --jmx-url service:jmx:rmi:///jndi/rmi://kafkatest-01:9154/jmxrmi
Trying to connect to JMX url: service:jmx:rmi:///jndi/rmi://kafkatest-01:9154/jmxrmi.
Could not connect to JMX url: service:jmx:rmi:///jndi/rmi://kafkatest-01:9154/jmxrmi. Exception Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: kafkatest-01; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)].
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: kafkatest-01; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)]
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:369)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270)
at kafka.tools.JmxTool$.main(JmxTool.scala:120)
at kafka.tools.JmxTool.main(JmxTool.scala)
Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: kafkatest-01; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)]
at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:136)
at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:205)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1955)
at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1922)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:287)
... 3 more
解决方案
Trying to connect to JMX url: service:jmx:rmi:///jndi/rmi://kafkatest-01:9154/jmxrmi.
但你的端口是 9145
com.sun.management.jmxremote.port = 9145
想知道你正在运行的 JVM 上实际设置了哪些属性(对于检查这样的东西很有用)
prompt> jcmd $pid VM.system_properties
推荐阅读
- amazon-web-services - 为什么我不能更改 AWS Elastic Map Reduce 中的“spark.driver.memory”值?
- css - 仅当特定子标签不存在时才定位 div
- django - 哪个是更有效的方法,使用列表理解或 django 的“values_list”函数?
- full-text-search - 有没有办法更改 Search API 方面计数以显示总字数而不是匹配片段(文档)的计数?
- .htaccess - 从新的“根”文件夹重定向到旧图像文件夹
- algorithm - 如何像在 MotionBuilder 中一样计算旋转
- html - 如何扩展一个填充其父级,而不根据自己的内容扩展?
- arrays - Vue.js 方法返回过时的数组数据
- python - 确定 TD 标签内的类
- templates - 如何在样式范围内添加类?