共计 1329 个字符,预计需要花费 4 分钟才能阅读完成。
JDK 自带工具 JCONSOLE,可以以图形界面远程监控 JVM 的情况,也可作相应的一些操作。
1、修改 Tomcat 的启动语句,将 bin/catalina.sh 文件 vi 编辑:
将原
JAVA_OPTS=”-Xmx1024M -Xms512M -Xss3M”
export JAVA_OPTS
调整为
JAVA_OPTS=”-Xmx1024M -Xms512M -Xss3M -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true”
export JAVA_OPTS
如果是 JBOSS,还需加这一行
JAVA_OPTS=”$JAVA_OPTS -Djava.rmi.server.hostname=10.0.122.132″,如果不加就连不上
检查 LINUX 环境:
运行:hostname -i,如果返回 127.0.0.1,则要改 /etc/sysconfig/network 里的 HOSTNAME 为 NEWHOST,再在 /etc/hosts 里增加一行本机 IP 对应 NEWHOST 的值。
清除防火墙的所有东西:iptables -F!!
参考:http://dikar.iteye.com/blog/534109
2、修改 jmx 配置文件
目录切换至 JAVA_HOME 所在目录
/jre/lib/management 下,
a、将 jmxremote.access、jmxremote.password.template 权限调整为读写;
chmod 600 jmxremote.password.template
chmod 600 jmxremote.access
b、jmxremote.password.template 文件重命名
mv jmxremote.password.template jmxremote.password
c、vi jmxremote.password
去掉
# monitorRole QED
# controlRole R&D
的 #号 (Solaris 下可编辑模式下,可以使用 x 删除光标标记处字符)
:wq 保存操作
3、启动 Tomcat
./catalina.sh run
4、查看 JMX 启动情况
netstat -a | grep -i 9999 查看端口占有情况
如机器 9999 端口被其他程序占用,可调整端口 -Dcom.sun.management.jmxremote.port=????
5、客户端机器可通过 jconsole 或 visualvm 对其进行监控
使用 JMX 方式,输入 url 用户名(controlRole)、密码(R&D)即可访问
url:远程主机 IP:9999
用户名及密码 (参考 jmxremote.password 文件) monitorRole 只能读,controlRole 能读写
配置中的安全原因出错,由于密码是以明文的方式保存在:jmxremote.password 中,所以对此文件只能有所有者都读取,其他人都不能读取。Windows 下的设置情况见:http://www.linuxidc.com/Linux/2015-02/113416.htm