Jconsole远程监控Linux下Tomcat

9 篇文章 0 订阅
8 篇文章 0 订阅

Jconsole远程监控Linux下Tomcat

1 卸载openjdk安装sun jdk

1.1 卸载openjdk

在openjdk中没有找到Jconsole工具,所以需要卸载openjdk。步骤如下:

1)       查看系統的jdk: rpm -qa | grep jdk(我这里找到的是:java-1.6.0-openjdk-1.6.0.0-1.43.1.10.6.el6_2.i686),如果找不到可以用rpm -qa | grep gcj

2)       移出系统自带的jdk: yum -y removejava-1.6.0-openjdk-1.6.0.0-1.43.1.10.6.el6_2.i686

1.2 安装sunjdk

不会安装及配置的同学可以网上查找资料,这里不列出来了。

2远程监控配置

2.1 JDK配置

在%JAVA_HOME%/jre/lib/management目录下,jmxremote.password.template、jmxremote.password需要修改配置。具体步骤如下:

1)       复制一份jmxremote.password.template文件,将其重命名为jmxremote.password,这就是控制远程连接的用户名密码的。

2)       然后编辑jmxremote.password文件,修改下面两行,把注释#去掉:

#monitorRole  QED

#controlRole  R&D

monitorRole是查看角色(也是登录用户名,在access文件中),拥有只读权限,QED是设置的密码。

controlRole是控制用户(也是登录用户名,在access文件中),拥有读写权限,R&D是设置的密码。

3)       最后chmod对这两个文件赋权,600就可以了。

chmod 600 jmxremote.password.template
chmod 600 jmxremote.password

2.2 Tomcat启动配置

编辑tomcat/bin/catalina.sh,在Execute The RequestedCommand这段注释上面加入下面这段代码,中间无换行:

#注意hostname是tomcat所在服务器IP,port是监控端口。
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=172.7.9.201 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=22222 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"

然后如果开启了防火墙,要将端口加入防火墙信任列表:

在/etc/sysconfig/iptables中加入如下一行

-ARH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT

也可以用iptables命令直接加上。

之后启动tomcat,刚才设置的22222端口就处于侦听状态了。

2.3 监听端配置

另外找一台服务器(安装sun jdk),命令行进入%JAVA_HOME%/bin ,运行jconsole(图1),勾选远程进程,输入远程地址为172.7.9.201:22222,用户名controlRole,密码QED。


图1

点击“连接”,成功后,就可以监控啦(图2)。

图2

3 问题解决

3.1 问题描述:

在安装问sun jdk,以及配置JDK、Tomcat之后,启动Tomcat,发现报如下错误:

java.net.UnknownHostException: yydcj-centos: yydcj-centos
         at java.net.InetAddress.getLocalHost(InetAddress.java:1426)
         at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:490)
         at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:288)
         at org.apache.jk.server.JkMain.pause(JkMain.java:726)
         at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
         at org.apache.catalina.connector.Connector.pause(Connector.java:1064)
         at org.apache.catalina.core.StandardService.stop(StandardService.java:578)
         at org.apache.catalina.core.StandardServer.stop(StandardServer.java:788)
         at org.apache.catalina.startup.Catalina.stop(Catalina.java:662)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:616)
         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)


3.2 问题原因:

分析日志,刚开始以为是卸载open jdk后安装sun jdk或者是Tomcat配置了远程监控项导致的问题,后来查看发现在没有进行如上所有操作(卸载openjdk安装sunjdk,配置tomcat启动项)的时候,也有该问题。排除这些可能后,再认真看上面的报错,yydcj-centos是未知的主机异常。

3.3 解决办法:

修改/etc/hosts文件,在127.0.0.1这一行的最后空一格,加上yydcj-centos,重启Tomcat就不会再报错了。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值