我有一个罐子,是从我的一个团队那里得到的,我正在尝试连接到应用程序的JMX并收集一些度量数据。
我配置了JAVA_OPTS如下:
export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.rmi.port=8099 -Dcom.sun.management.jmxremote.port=8098 -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1 "
Java 应用程序使用新设置成功启动。我检查了应用程序是否在 9098/ 上监听,发现是:
[root@machine]# netstat -noap | grep -e "8098\|8099"
tcp6 0 0 :::8098 :::* LISTEN 16365/java off (0.00/0/0)
tcp6 0 0 :::8099 :::* LISTEN 16365/java off (0.00/0/0)
我尝试运行以下curl命令,但没有返回任何内容:
[root]# curl -i 127.0.0.1:9098/jolokia/read/java.lang:type=Memory/HeapMemoryUsage
curl: (52) Empty reply from server
[root]# curl -i 127.0.0.1:9097/jolokia/read/java.lang:type=Memory/HeapMemoryUsage
curl: (56) Recv failure: Connection reset by peer
是否可以通过 API 调用来访问 JMX 端口?