jconsole远程连接linux,linux远程登录命令
如何使用jconsole监控tomcat
JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM。可以监控本地和远程的java程序。
Jconsole可以监视本地Tomcat和远程服务器上的Tomcat
监视前需要做如下配置:
1、如果要监视远程Java进程,需要在远程服务器上做相应的设置
1)windows系统下,需要修改 tomcat主目录\bin\ catalina.bat文件
将
set JAVA_OPTS=%JAVA_OPTS%-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
修改成
set JAVA_OPTS=%JAVA_OPTS%-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port="8080"
-Dcom.sun.management.jmxremote.authenticate="false"
-Dcom.sun.management.jmxremote.ssl="false"
2)Linux系统下,需要修改 tomcat主目录\bin\ catalina.sh文件
增加一行
CATALINA_OPTS="$JAVA_OPTS-Djava.rmi.server.hostname=218.28.198.188-Dcom.sun.management.jmxremote.port=9527-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false"即可
然后使用JConsole就可以监控Tomcat啦。
点击%JAVA_HOME%\bin下的jconsole.exe即可
jconsole 为什么远程连接连接失败
根据oracle网站上的文档,本地使用jconsole没有问题。但当我从windows连接到linux时(centos5.4)时,老是连接不上)。原因是Linux上JVM给jconsole的RMI配置文件不对,
jvm使用了hostname-i的IP地址,我的/etc/hosts上127.0.0.1,所以远程老是连接不上。
只要在java启动参数中加入-Djava.rmi.server.hostname=192.168.0.10显示说明JVM返回给jconsole的IP地址即可。
挡在java启动参数中加入-Dcom.sun.management.jmxremote.port=6666时,jvm回去读取 JRE_HOME/lib/management/jmxremote.password和 JRE_HOME/lib/management/jmxremote.access文件。其中jmxremote.password说明远程访问的用户名和密码, jmxremote.access说明用户的访问权限,有readonly和readwrite选项。 jmxremote.password可以有jmxremote.password.template生成,同时要注意修改jmxremote.password的访问权限为用户只读,组和others无权限, chmod 0400./jmxremote.password。
否则会出现Error: Password file read access must be restricted:/root/jdk1.6.0_26/jre/lib/management/jmxremote.password
一下两个选项分别禁止ssl验证和无用户名密码访问
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Jconsole 开启远程连接遇到的一些坑
在深入学习JVM性能监控时,了解到Jconsole、JVisual、JMC等可视化工具用于监控Java应用性能指标。然而,Linux环境下的远程连接使用遇到了挑战,本文将记录远程调用步骤及常见坑点。
远程监控基于Java Management Extensions(JMX)标准API,提供程序性能指标与使用情况管理。远程访问需通过JMX启动参数配置。
配置远程连接时,需注意启动Java程序的方式。无论是jar包还是war包,均需将上述JMX配置参数拼接到启动命令中,确保参数正确拼接后添加至配置文件或启动参数中。
启动jar包程序,其命令格式通常包括JMX配置参数。在tomcat启动时,需在启动文件catalina.sh中加入相应配置。完成配置后,重启tomcat尝试使用Jconsole进行远程连接。
若远程连接失败,首先检查本地端口是否开启。若端口已开启,接着排查防火墙问题,使用端口扫描确认端口状态。如果端口开启但仍然无法连接,可能忽视了RMI配置,这是JMX和RMI之间关联的关键组件。
添加RMI端口配置后,可成功远程监控Java服务。在使用Jconsole远程连接时,还需注意解决tomcat启动和关闭时端口问题。
当尝试关闭tomcat服务时,可能会遇到端口被占用的错误。针对这一问题,通常有以下两种解决方案:一是在tomcat启动时通过脚本添加JMX相关配置,二是在启动与关闭时增加判断条件确保端口仅在启动时开启,避免关闭时再开启端口导致错误。
总结而言,远程连接Jconsole等工具时需确保JMX配置正确、注意端口与防火墙设置、解决RMI配置遗漏问题,并确保tomcat启动与关闭逻辑的合理性,以实现稳定、高效的Java应用性能监控。