使用VisualVM远程监控JVM Linux服务器配置方法

修改/etc/hosts
建立连接的IP与主机名映射(未尝试过!)

感觉没啥用

暂时第一步骤,应该是用不到(不知道干嘛用的)
进入tomcat/bin目录
vim setenv.sh
#!/bin/shexport JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx512m -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access" chmod +x setenv.sh)(不太需要)

第一步骤

在server.xml中添加listener
进入tomcat/conf目录

vim server.xml

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
需要下载对应版本tomcat的jar包(下载地址 http://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina-jmx-remote

第二步骤

JMX访问控制文件
进入tomcat/conf目录,执行
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template jmxremote.password
cp $JAVA_HOME/jre/lib/management/jmxremote.access jmxremote.access

取消以下两行注释
#monitorRole QED(monitorRole用户名,QED是密码,可以修改相应的密码)
#controlRole R&D

也可以自定义账号,按username password的格式添加一行,这样就需要同时修改jmxremote.access
vi jxmremote.access
在最下面添加
username readwrite(没试过!)

授权
chmod 600 jmxremote.password
chmod 600 jmxremote.access

第三步骤

配置/bin/catalina.sh文件
# OS specific support. $var _must_ be set to either true or false.下 CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=主机ip

-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
如果需要添加安全凭证:
#-Dcom.sun.management.jmxremote.password.file=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/lib/management/jmxremote.password
#-Dcom.sun.management.jmxremote.access.file=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/lib/management/jmxremote.access
`

第四步骤

配置防火墙
在-A INPUT -j REJECT --reject-with icmp-host-prohibited前加入

-A INPUT -p tcp -m state --state NEW -m tcp --dport 10001 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10002 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
(加入对外访问的防火墙)
重启防火墙
service iptables restart
(linux上没有/etc/sysconfig/iptables文件解决方式【yum -y install iptables-services】
遇到No route to host访问异常,iptables -F 【该命令会清空规则链,如果对防火墙要求较严格的情况下,不建议使用该方法,建议通过设置具体访问规则来实现端口的开放】)

推荐阅读更多精彩内容