首先附上官方文档链接 https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html,读者可以结合官方文档和笔者文章食用。
Windows监控本地tomcat方法
1.进入%JAVA_HOME%\bin目录,打开jconsole.exe。
2.选中tomcat进程,点击连接,ok。
Windows远程监控Linux tomcat方法
1.编辑%CATALINA_HOME%\bin\catalina.sh,在如图“#JAVA_OPTS=…”与“#------ Execute The…之间”插入以下代码(请根据实际情况填写参数,不要无脑复制粘贴)
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=0.0.0.0 -Dcom.sun.management.jmxremote.password.file=/h
ome/java/jdk1.8.0_121/jre/lib/management/jmxremote.password"
以下为参数解释:
com.sun.management.jmxremote:启动监控功能
com.sun.management.jmxremote.port:监控进程的接入端口
com.sun.management.jmxremote.authenticate:是否开启身份验证
com.sun.management.jmxremote.ssl:是否已SSL的方式接入
java.rmi.server.hostname:服务器ip,不能填127.0.0.1,可以使用hostname -i查看
com.sun.management.jmxremote.password.file:jmxremote用户信息配置文件地址
2.进入%JAVA_HOME%\jre\lib\management目录,输入命令mv jmxremote.password.template jmxremote.password,如果不开启身份验证,则进入下一步。如果开启身份验证,则编辑jmxremote.password文件,跳到文件末尾:
从注释可以看出默认提供了两个用户:monitorRole和controlRole以及他们默认的密码,删除他们前面注释即可。
monitorRole,授予只读访问权限以进行监视
controlRole,授予对监视和管理的读写访问权限。
在%CATALINA_HOME%\bin\startup.sh最下面exec “
P
R
G
D
I
R
"
/
"
PRGDIR"/"
PRGDIR"/"EXECUTABLE” start "$@"这一行上方加上刚刚配置的参数:
3.查看jmxremote设置的端口是否被防火墙拦截,windows打开命令窗口输入telnet ip:port(ip填hostname,port填设置的端口),如果没有被拦截直接进入步骤5,否则下一步。
4.设置防火墙为jmxremote端口放行,输入vi /etc/sysconfig/iptables ,在COMMIT上面插入如下代码
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT
dport参数填实际值
5.在windows打开打开jconsole.exe,输入ip,端口,用户名及口令,连接,完事。