前一段测试系统崩溃过一回,所以想远程监控一下jvm的运行情况,我在网上也找了不少文章和办法,试了好几次都没成功,今天算试成功了,但是不太完美,因为需要将Linux的防火墙关掉才可以连接,我尝试将连接的端口号加到iptables中,重启防火墙,也不行。所以先记录下来,以后再看看是什么问题。
1.linux下tomcat安装目录下的bin文件夹中的catalina.sh
端口号:1099,Linux主机IP:192.168.193.129
检查host是否是127.0.0.1 , 执行命令 hostname -i 如果是127.0.0.1 。
在etc/hosts 文件中将127.0.0.1改为主机IP(此处为192.168.193.129),如果不能保存,改权限
chmod +x hosts
在catalina.sh文件中添加如下:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.193.129"
位置:
这是不加认证的。以上配置是需要关闭防火墙,如果想不关闭防火墙来访问。需要在iptables里把1099端口给公布出去。
关闭防火墙命令:service iptables stop
[root@localhost sysconfig]# service iptables stop Flushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Unloading iptables modules: [ OK ]
在etc/sysconfig/iptables中加入:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1099-j ACCEPT
或者
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1099-j ACCEPT
重启防火墙命令:service iptables restart
补充:
1) Linux操作系统中永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux操作系统中的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
----------------------------------------------------------------------------------------------
以下连接成功是Linux下关闭了防火墙:
1.打开java安装目录bin目录下的jvisualvm.exe
C:\Program Files\Java\jdk1.7.0_45\bin
2.在远程上右键,添加远程主机
3.在添加的远程主机上右键,添加Jmx
此处不需要密码,点击确定即可。
4.双击连接查看Jvm运行情况