使用curl访问JMX端口

4

我有一个罐子,是从我的一个团队那里得到的,我正在尝试连接到应用程序的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 端口?


根据我们上次的讨论,请在发布之前使用拼写检查工具。 - halfer
说实话,我正在使用一个 :) 你发现了我错过的什么吗? - JeyJ
1个回答

0

对于我的系统,我设置了在运行Cassandra的计算机上使用端口7770来进行JMX。

要获取所有可用数据的列表:

echo "beans" | java -jar jmxterm-1.0.2-uber.jar -l localhost:7199 -n 2>&1 | less

查看特定值:

curl http://localhost:7770/jolokia/read/java.lang:type=ClassLoading

对于Cassandra - 连接的客户端:

 curl http://localhost:7770/jolokia/read/org.apache.cassandra.metrics:name=connectedNativeClients,type=Client/*

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接