假如启动参数如下:
nohup java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9005 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=远程主机的外网IP -jar monitor_tuning.jar &
-
确认下jmx的端口是否启动,
命令行执行:netstat –nap | grep 9005 如果没有输出,则说明端口没有启动,查看nohup.out的日志找原因。 -
确认远程主机的ip地址,如果是阿里云,要填写外网的ip地址,而不是内网的ip地址。
-
如果端口已经启动,ip地址也正确,在ECS的安全组,需要开放jmx相关的端口,不仅仅是9005,还有2个随机端口,使用以下命令来查找这几个端口:
首先:ps –ef | grep java 找到进程的pid,
然后:netstat –nap | grep pid找到进程相关的端口,
如下图,则需要开放:9005 36333 34502这三个端口。
-
在本机可以开一个telnet客户端来验证这几个端口是否打开
telnet ip port