基本是跟着网上的操作进行的,除了遇到一个Local host name unknown的问题:
一、Linux服务器操作部分
服务器地址:10.64.111.68
首先配置JMX:
1.找到jdk目录
[root@C68 demo]# echo $JAVA_HOME
/root/demo/jdk1.8.0_60
2. cd 到/root/demo下的tomcat的bin目录下
[root@C68 bin]# vi catalina.sh
添加如下参数:
JAVA_OPTS='-Dcom.sun.management.jmxremote.port=9988 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.64.111.67'
如图:
其中,
-Dcom.sun.management.jmxremote.port=9988
上面指定了 JMX 启动的代理端口;这个端口就是 windows中的JVM工具要连接的端口
-Dcom.sun.management.jmxremote.ssl ="false"
上面指定了 JMX 是否启用ssl
-Dcom.sun.management.jmxremote.authenticate =false
上面指定了 JMX 是否启用鉴权(需要用户名,密码鉴权),启用的话,windows负载机JVM工具中就要进行设置,我这里不用鉴权
-Djava.rmi.server.hostname=10.64.111.67'
上面指定了主机名,ip是linux服务器的
3.重启tomcat
在tomcat的bin目录下,
[root@C68 bin]# ./shutdown.sh
Using CATALINA_BASE: /root/demo/apache-tomcat-8.0.33
Using CATALINA_HOME: /root/demo/apache-tomcat-8.0.33
Using CATALINA_TMPDIR: /root/demo/apache-tomcat-8.0.33/temp
Using JRE_HOME: /root/demo/jdk1.8.0_60
Using CLASSPATH: /root/demo/apache-tomcat-8.0.33/bin/bootstrap.jar:/root/demo/apache-tomcat-8.0.33/bin/tomcat-juli.jar
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: C68: C68: unknown error
[root@C68 etc]# hostname -i
hostname: Host name lookup failure
遇到了这个找不到主机名的问题,
解决办法:
首先看一下主机名是什么
cat /etc/sysconfig/network
该文件中内容如下,如果没有的话,就自己vi写出来,然后重启机器。
我这里直接自己已经有了,但是我对这个hostname是有疑问的,因为并没有见过这个主机名,我的是C68,不知道这个主机名从哪里出来的,但是我也没管。
NETWORKING=yes
HOSTNAME=SSCVL0263
然后在hosts文件中,将主机名和ip在hosts文件中映射出来,如下,我还是写的C68,按理说应该写上边的那个SSCVL0263,奇怪的是我写C68也解决了问题,就这样吧:
再次重启tomcat
在tomcat的bin目录下,
.shutdown.sh
.startup.sh
二、Windows负载机部分
1.在Java-jdk-bin中双击JVisualVM,选中左边的Remote节点,右键点击Add Remote Host弹出对话框, 填写远程的Tomcat的主机IP,点击OK
2.选中远程Tomcat主机IP这个节点,右键弹出菜单选择“Add JMX Connetcion..”,在弹出的对话框的填写要连接的Tomcat所在的主机端口,端口是在catalina.sh设置的端口9988,点击OK。
遇到的问题是:Cannot connect to ,using service:jmx:rmi:///jndi/rmi:// /jmxrmi
解决方案,就是因为上面的找不到主机名的问题,上面已经成功的解决。
3.在左侧树节点添加了JMX节点,双击这个节点或者右键弹出菜单,点击“Open”,可以远程监控Tomcat的使用情况了。