时间:2020-02-19来源:系统城作者:电脑系统城
操作系统:centos7 内存:1G jdk:1.8.0_131 tomcat:8.0.48
环境准备我们这里就不直接演示了,直接配置tomcat的jmx
# cd /opt/tomcat/apache-tomcat-8.0.48/bin/
# vim catalina.sh
参数添加后的样子
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表示监控不需要用户和密码
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"
配置后的截图:
参数说明:
authenticate:为true开启账号验证
access.file:权限文件路径
password.file:密码文件路径
3.3.1、找到jdk安装目录
如果不知道安装到目录那个地方可以通过命令查找:
# java -verbose
3.3.2、切换到jdk目录中
进入# cd jre/lib/management/
在文件目录下会有jmxremote.access jmxremote.password.template文件,拷贝到tomcat的conf目录下
# cp jmxremote.* /opt/tomcat/apache-tomcat-8.0.48/conf/
3.3.3、修改jmxremote.access文件
3.3.4、重命名密码文件:
# mv jmxremote.password.template jmxremote.password
3.3.5、编辑密码文件
# vim jmxremote.password
3.3.6、编辑完文件后,要修改access文件和password文件权限,不然tomcat启动不起来
# chmod 600 jmxremote.*
[root@ha bin]# ./startup.sh Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.0.48 Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.0.48 Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.0.48/temp Using JRE_HOME: /usr Using CLASSPATH: /opt/tomcat/apache-tomcat-8.0.48/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.0.48/bin/tomcat-juli.jar Tomcat started.
双击打开jmx连接
# ./shutdown.sh
4.2.1、再次连接jmx查看是否可以连接上
数据监控图都查看不了,连接不上
网上给出的结论是:
tomcat的jmx远程健康是需要两个端口,一个是注册端口,一个是服务端口,之前配置指定的9999端口是注册端口,tomcat在启动的时候会随机指定一个服务端口,由于我们注册端口只有一个,所以在重启服务后,注册端口没有变化,服务端口已经变了,再次通过注册端口连接已经连接不上之前的服务端口了,没有办法指定服务端连接,服务端口是随机的。
有一种方法是设置jmx固定的注册端口和服务端口,通过jar包实现
根据自己的tomcat版本找到JMX Remote jar
获取jar包的连接也可以直接wget到lib目录下
# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/extras/catalina-jmx-remote.jar
# vim server.xml
添加下面内容:
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
# vim catalina.sh
删除参数:
-Dcom.sun.management.jmxremote.port=9999
当我们双击之前创建的jmx远程连接的时候会发现也连接不上,这是为什么呢,这里我们要注意上面连接中的pid号,经过查询,我们发现这个pid号就是linux中tomcat的pid号,当我们重启tomcat后,会产生新的pid号,所以我们想要连接就要新建一个连接
2024-07-18
Centos 7 二进制安装配置 MariaDB数据库2024-07-18
Centos7默认firewalld防火墙使用命令大全2024-07-07
四种执行python系统命令的方法常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...
2024-07-07
然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...
2024-07-03