IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> zabbix 监控 tomcat ,开启JMX 修改catalina.sh文件,tomcat服务起不来,配置catalian.sh不生效,jmx端口起不来, -> 正文阅读

[Java知识库]zabbix 监控 tomcat ,开启JMX 修改catalina.sh文件,tomcat服务起不来,配置catalian.sh不生效,jmx端口起不来,

问题现象(配置Catalina.sh脚本,开启JMX不起效)

[root@localhost ~]# vi /usr/local/tomcat/apache-tomcat-9.0.56/bin/catalina.sh 
#添加完
CATALINA_OPTS="-Docm.sun.management.jmxremote 
               -Docm.sun.management.jmxremote.authenticate=false
               -Docm.sun.management.jmxremote.ssl=false
               -Docm.sun.management.jmxremote.port=12345
               -Djava.rmi.server.hostname=192.168.1.134"

问题一:配置完脚本,重启tomcat

[root@localhost ~]# /usr/local/tomcat/apache-tomcat-9.0.56/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.56/temp
Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_311/jre
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.56/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.56/bin/tomcat-juli.jar
Using CATALINA_OPTS:   -Docm.sun.management.jmxremote
              -Docm.sun.management.jmxremote.authenticate=false
              -Docm.sun.management.jmxremote.ssl=false
              -Docm.sun.management.jmxremote.port=12345
              -Djava.rmi.server.hostname=192.168.1.134
[root@localhost ~]# /usr/local/tomcat/apache-tomcat-9.0.56/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.56/temp
Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_311/jre
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.56/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.56/bin/tomcat-juli.jar
Using CATALINA_OPTS:   -Docm.sun.management.jmxremote
              -Docm.sun.management.jmxremote.authenticate=false
              -Docm.sun.management.jmxremote.ssl=false
              -Docm.sun.management.jmxremote.port=12345
              -Djava.rmi.server.hostname=192.168.1.134
Tomcat started.
[root@localhost ~]# lsof -i:8080
[root@localhost ~]#
[root@localhost ~]#    重启完发现根本就没有8080端口
[root@localhost ~]# netstat -antup |grep java
也是什么java程序都没有

tomcat服务启动失败

#而且去关闭tomcat服务,显示报错,其实就是tomcat刚刚根本就没有启动起来
[root@localhost ~]# /usr/local/tomcat/apache-tomcat-9.0.56/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.56/temp
Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_311/jre
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.56/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.56/bin/tomcat-juli.jar
Using CATALINA_OPTS:   -Docm.sun.management.jmxremote 
               -Docm.sun.management.jmxremote.authenticate=false
               -Docm.sun.management.jmxremote.ssl=false
               -Docm.sun.management.jmxremote.port=12345
               -Djava.rmi.server.hostname=192.168.1.134
十二月 22, 2021 4:24:15 下午 org.apache.catalina.startup.Catalina stopServer
严重: 无法联系[localhost:8005](基端口[8005]和偏移量[0])。Tomcat可能不在运行。
十二月 22, 2021 4:24:16 下午 org.apache.catalina.startup.Catalina stopServer
严重: 停止 Catalina 时出错
java.net.ConnectException: 拒绝连接 (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
	at java.net.Socket.connect(Socket.java:606)
	at java.net.Socket.connect(Socket.java:555)
	at java.net.Socket.<init>(Socket.java:451)
	at java.net.Socket.<init>(Socket.java:228)
	at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:667)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:391)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:481)

查看tomcat的catalina.out日志

进入日志路径,根据自己所在tomcat路径

cd /usr/local/tomcat/apache-tomcat-9.0.56/logs
查看 catalina.out 日志

在这里插入图片描述

显示未找到命令,原因是上面的脚本格式并不是一行,无法正常识别

将脚本命令改为下面命令

 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote=true"
 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote.authenticate=false"
 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote.ssl=false"
 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote.port=12345"
 CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=192.168.1.134"

再次重启tomcat

[root@localhost logs]# /usr/local/tomcat/apache-tomcat-9.0.56/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.56/temp
Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_311/jre
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.56/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.56/bin/tomcat-juli.jar
Using CATALINA_OPTS:    -Docm.sun.management.jmxremote=true -Docm.sun.management.jmxremote.authenticate=false -Docm.sun.management.jmxremote.ssl=false -Docm.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.1.134
Tomcat started.


但是新的问题产生

问题二:tomcat可以正常启动了,但是JMX没起来

没有配置的12345 端口

[root@localhost logs]# lsof -i:8080
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    3997 root   57u  IPv6  57374      0t0  TCP *:webcache (LISTEN)
[root@localhost logs]# netstat -antup |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3997/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      3997/java           
[root@localhost logs]# netstat -tnlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      802/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1497/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1106/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1108/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1239/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      2716/sshd: root@pts 
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3997/java           
tcp6       0      0 :::111                  :::*                    LISTEN      802/rpcbind         
tcp6       0      0 :::8080                 :::*                    LISTEN      3997/java           
tcp6       0      0 :::22                   :::*                    LISTEN      1106/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1108/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1239/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      2716/sshd: root@pts 
[root@localhost logs]# netstat -antup |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3997/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      3997/java           
[root@localhost logs]# netstat -antup |grep 12345
[root@localhost logs]# netstat -tnlp |grep 12345

原因:tomcat8.5以上版本,开启JMX需要多加一句话才能起效

CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote=true"
 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote.authenticate=false"
 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote.ssl=false"
 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote.port=12345"
 CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=192.168.1.134"
 #要加这句
 CATALINA_OPTS="$CATALINA_OPTS -Docm.sun.management.jmxremote.rmi.port=12345"  

按照网上所说,加了这句话,就可以,事实上我这边端口还是根本就没有,配置的语句看起来tomcat启动时,use了,但是根本不起作用

查看官方说明

官方tomcat9.0.56 JMX连接文档: Apache Tomcat 9 -Monitoring and Managing Tomcat
在这里插入图片描述
在这里插入图片描述

解决方法,不在catalian.sh下配置,按照官方新建脚本setenv.sh

#tomcat bin/路径下创建脚本

[root@localhost ~]# vi /usr/local/tomcat/apache-tomcat-9.0.56/bin/setenv.sh

#写入一下语句
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=192.168.1.134"  
CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial="
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=12345"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.rmi.port=12345"   
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"


参数说明
-Docm.sun.management.jmxremote启用JMX
-Docm.sun.management.jmxremote.authenticate=false是否开启认证,看是否有需求(若开启,需要定义账户和密码)
-Docm.sun.management.jmxremote.ssl=false远程ssl验证
-Docm.sun.management.jmxremote.port=12345远程监听端口
-Djava.rmi.server.hostname=192.168.1.134Tomcat 所在服务器IP
-Dcom.sun.management.jmxremote.rmi.port=12345"tomcat 8.5以上要加

重启tomcat

[root@localhost ~]# /usr/local/tomcat/apache-tomcat-9.0.56/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.56/temp
Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_311/jre
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.56/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.56/bin/tomcat-juli.jar
Using CATALINA_OPTS:    -Djava.rmi.server.hostname=192.168.1.134 -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
[root@localhost ~]# /usr/local/tomcat/apache-tomcat-9.0.56/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.56
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.56/temp
Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_311/jre
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.56/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.56/bin/tomcat-juli.jar
Using CATALINA_OPTS:    -Djava.rmi.server.hostname=192.168.1.134 -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
Tomcat started.

查看jmx端口是否成功监听

在这里插入图片描述

终于脚本有效了

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:37:37  更:2021-12-23 15:38:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:23:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码