环境:

os:centos7

jdk version: oracle官方下载1.8.0_111

tomcat:apache-tomcat-8.0.39.tar.gz

一:jconsole

废话少说,直接上配置:

 1》#vim /usr/local/tomcat/bin/setenv.sh

CATALINA_OPTS="-server -Xms256m -Xmx300m -Xss512k -XX:PermSize=128m -XX:MaxPermSize=256m"

JAVA_OPTS="-Djava.rmi.server.hostname=192.168.233.130

           -Dcom.sun.management.jmxremote        

           -Dcom.sun.management.jmxremote.port=8008

           -Dcom.sun.management.jmxremote.ssl=false

           -Dcom.sun.management.jmxremote.authenticate=false"

 以上是jconsole客户端远程连接无需用户名密码认证的配置。


 2》 由于tomcat jmx监听端口是随机分配的,所以这种方式必须关闭iptables。下面来看看怎么指定端口分配并加上密码验证:

  1. cd /usr/local/tomcat/conf

  2. cp /usr/java/jdk1.8.0_111/jre/lib/management/jmxremote.access ./

  3. cp /usr/java/jdk1.8.0_111/jre/lib/management/jmxremote.password.template ./jmxremote.password

  4. chmod 600 jmxremote.access jmxremote.password

jmxremote.access 一般保持原始内容不变即可。

对于jmxremote.password,将其中的:

  1. monitorRole  linuxeye

  2. controlRole  linuxeye

井号注释取消掉。其中monitorRole为只拥有只读权限的角色,controlRole有更高权限:读写等等。

新增tomcat/bin/setenv.sh

  1. CATALINA_OPTS="-server -Xms256m -Xmx300m -Xss512k -XX:PermSize=128m -XX:MaxPermSize=256m"

  2. JAVA_OPTS="-Djava.rmi.server.hostname=192.168.233.130

  3.            -Dcom.sun.management.jmxremote        

  4.            -Dcom.sun.management.jmxremote.ssl=false

  5.            -Dcom.sun.management.jmxremote.authenticate=true

    -Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password

  6. -Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access"


下载catalina-jmx-remote.jar,放到tomcat/lib目录下

  1. cd tomcat/lib

  2. wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.39/bin/extras/catalina-jmx-remote.jar

编辑server.xml:

  1. <?xml version='1.0' encoding='utf-8'?>

  2. <Server port="8005" shutdown="SHUTDOWN">

  3. ....

  4.   <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8081" rmiServerPortPlatform="8082" />

最后将固定的端口加入防火墙信任列表

  1. iptables -A INPUT -p tcp --dport 8081 -j ACCEPT

    iptables -A INPUT -p tcp --dport 8082 -j ACCEPT

重启tomcat

可以使用netstat -an | grep -E '8081|8082'命令查看端口是否正常启动。
打开windows java安装路径Java\jdk1.7.0_71\bin\jconsole.exe,输入服务器端相关信息:

点击"连接",进入监控页面: