详细介绍了Tomcat开启JMX监督,并按照图文并茂的方式给大家做了详细的介绍,有一定的参考价值,可以借鉴。
构建模拟自然环境:
计算机 *** 作系统:centos7
运行内存:2GB
JDK:1.8.0_131
。
自然环境是提前准备好的,所以我们不马上在这里进行测试。我们会立即装备tomcat的jmx。
1.转到tomcat的bin文件目录。
#CD/opt/Tomcat/Apache-Tomcat-8.0.48/bin/
2.编写环境变量。
#vimcatalina.sh
3.将主要参数添加到下图的顶部。
主要参数添加后的样子。
3.1.该设备已连接到jmx,但没有帐户密码:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.117 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"装备后截图:
主要参数表明:
Hostname:是tomcat所属网络服务器的详细ip地址。
Jmxremote.port:端口号,即要打开的监控端口号。
Jmxremote.ssl:是否要打开ssl连接?
Authenticate:false表示客户和登录密码不用于监督。
3.2.必须提供登录名和登录密码:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.117 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"装备后截图:
主要参数表明:
验证:为true打开帐户验证。
Access.file:管理权限文件的路径
Password.file:密码文件路径
3.3.如果没有提供登录密码验证,则不需要此步骤。客户开通,登录密码认证完成,这个流程必须实际 *** 作。
3.3.1.找到jdk安装文件目录。
如果你不知道该把文件目录安装到哪里,你可以根据说明进行搜索:
#Java-详细
3.3.2.转换到jdk文件目录
转到#cdjre/lib/management/
JMXremote.accessJMXremote.password.template文档将出现在文件名下,并将其复制到tomcat的conf文件目录中。
#cpjmxremote。*/opt/Tomcat/Apache-Tomcat-8.0.48/conf/
3.3.3.更改jmxremote.access文档
3.3.4.重命名密码文件:
#mvJMXremote.password.templateJMSremote.password
3.3.5.写入密码文件。
#vimjmxremote.password
3.3.6、写完文档后,更改access文档和密码文件权限,否则tomcat不会启动。
#chmod600jmxremote。*
4。启动tomcat
[root@habin]#./startup.sh UsingCATALINA_BASE:/opt/tomcat/apache-tomcat-8.0.48 UsingCATALINA_HOME:/opt/tomcat/apache-tomcat-8.0.48 UsingCATALINA_TMPDIR:/opt/tomcat/apache-tomcat-8.0.48/temp UsingJRE_HOME:/usr UsingCLASSPATH:/opt/tomcat/apache-tomcat-8.0.48/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.0.48/bin/tomcat-juli.jar Tomcatstarted.4.1.做了以上实际 *** 作后,在windows下应用jdk内置的jvisualvm.exe连接就可以检测到了。
双击打开jmx联接
4.2.重新启动tomcat,检查jmx是否仍然可以连接。
#./shutdown.sh
4.2.1.再次加入jmx查询。有可能加入吗?
无法查询和连接监控图表。
为什么会出现这个问题?
在互联网上获得的结果是:
Tomcat的jmx远程控制健康需要两个端口,一个是应用程序注册端口,一个是服务项目端口。以前特定的9999端口是应用程序注册端口,tomcat在启动时会任意指定一个服务项目端口。因为只有一个应用程序注册端口,所以在重新启动服务项目后,应用程序注册端口没有发生变化。服务项目端口已经更改,根据应用程序重新注册端口连接,以前的服务项目端口不能再连接。没有办法指定服务器端连接,服务项目端口是任意的。
一种方式是设置jmx固定的应用注册端口和服务项目端口,按照jar包完成。
5.登录tomcat官网(注意我的tomcat版本号是1.8.0,只能在线使用1.8.5)
地址:https://tomcat.apache.org/
根据tomcat版本号查找JMX远程jar。
6.将免费下载上传到tomcta的lib文件目录下。
获得jar包的连接,你可以立即wget到lib文件目录。
#wgethttp://mirror.bit.edu.cn/Apache/Tomcat/Tomcat-8/v8.5.50/bin/extras/catalina-JMX-remote.jar
7.在tomcat的conf文件目录中编写server.xml文件。
#vimserver.xml
添加以下内容:
<ListenerclassName="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001"rmiServerPortPlatform="10002"/>8.在tomcat的bin文件目录中写入catalina.sh。
#vimcatalina.sh
删除主要参数:
-DCOM.sun.management.JMXremote.port=9999
9.重新启动tomcat检测。jmx应用程序注册端口是10001,服务项目端口是10002。
10.重新启动tomcat进行重新连接检测。
当我们双击鼠标之前建立的jmx远程桌面连接时,会发现无法连接。为什么?这里要注意上面连接中的pid号。经过检查,我们发现这个pid号是linux中tomcat的pid号。在我们重启tomcat之后,将会创建一个新的pid号,所以如果我们想要连接的话,我们需要创建一个新的连接。
1.如果您再次创建jmx连接,您将获得一个新的pid号。
12.到了这里,我们已经测试成功,所以我们担心应用zabbix来监管tomcat时,tomcat重启后无法连接jmx端口。
摘要
以上是我根据Tomcat打开JMX监督的方式给大家的详细介绍,期待对大家有所帮助!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)