设为首页 收藏本站
查看: 1795|回复: 0

[经验分享] 【转】配置远程jconsole监测tomcat

[复制链接]

尚未签到

发表于 2015-8-10 11:24:16 | 显示全部楼层 |阅读模式
  最近想要监测tomcat及内存情况,用到了jdk1.6自带的jconsole工具,我的系统是win7,输入ip地址及用户名密码时候总是丢失焦点,很烦人。
  其实jdk自带了java VisualVM工具,个人感觉很好。
  一、用putty连接服务器:
DSC0000.bmp
  连接成功后,
echo $JAVA_HOME
  注意:windows下是 %%形式的,但是linux不是%%形式查看变量。
  输出结果为:
  
  /usr/local/jdk1.6.0_27
  
  这是我jdk的路径。
  
  下面是查看系统进程的命令:
  
  






Java代码 DSC0001.gif DSC0002.png DSC0003.gif

  • ps -lef |grep java
ps -lef |grep java

  注意:top命令是查看系统各个进程的资源占用情况。
  ps 命令是查看系统进程情况。
  
DSC0004.bmp
  此时能看到我的tomcat已经运行。
  我需要关闭tomcat:
  






Java代码

  • sudo /home/bit/local/tomcat/bin/shutdown.sh
sudo /home/bit/local/tomcat/bin/shutdown.sh
  注意:sudo是用超管权限执行此命令,输入密码即可。
  
  二、 编辑tomcat下得catalina.sh文件
  






Java代码

  • vim /home/bit/local/tomcat/bin/catalina.sh
vim  /home/bit/local/tomcat/bin/catalina.sh

  
  在 JAVA_OPTS后面加上:
  






Java代码

  • JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

  注意:一定要有双引号,否则是无法连接成功的,会报连接失败,是否重试错误。
  






Java代码

  • -Dcom.sun.management.jmxremote.port=6001
-Dcom.sun.management.jmxremote.port=6001
  是设置jmx 远程端口,






Java代码

  • -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.ssl=false
  设置是否加密连接。






Java代码

  • -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.authenticate=false
  设置是否密码访问。
  
  输入完之后保存并关闭,命令为: :wq!
  如果想要将其他文件的内容放入此文件中输入:






Java代码

  • r b.txt
r  b.txt
  或者想要将任何命令的结果放入此文件中命令如下:






Java代码

  • r ! more b.txt
r ! more b.txt
  此时b里面的内容就进入到当前文件中了。
  
  编辑成功后输入命令启动tomcat






Java代码

  • sudo /home/bit/local/tomcat/bin/startup.sh
sudo /home/bit/local/tomcat/bin/startup.sh

  查看当前系统运行的进程:
  






Java代码

  • ps -lef |grep java
ps -lef |grep java
  
  查看设置的端口是否在监听中:
  






Java代码

  • netstat -anp |grep 6001
netstat -anp |grep 6001
DSC0005.bmp
  
  此时已经知道端口处于监听状态。
  
  三、启动 jvisualvm
  
  
DSC0006.bmp
  输入ip及端口即可。
  
  过程中遇到的问题:
  
  1、当com.sun.management.jmxremote.authenticate=true(默认为true);并且jmxremote.password文件对其他用户权限设置过大,就会报如下错误信息:
  
  Error: Password file read access must be restricted:
  
  解决方案:
  
  更改文件权限即可:
  






Java代码

  • sudo chmod 700 jmxremote.password
sudo chmod 700 jmxremote.password
  2、当com.sun.management.jmxremote.authenticate=true ,但是没有创建jmxremote.password文件,就会报如下错误信息:
  
  Error: Password file not found: $JAVA_HOME/jre/lib/management/jmxremote.password
  
  解决方案:
  






Java代码

  • cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JMXRemote_HOME/jmxremote.password
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template  $JMXRemote_HOME/jmxremote.password
  
  如果想修改jmxremote.password这个文件可以更改权限,之后再改回来即可:
  






Java代码

  • sudo chmod 777 jmxremote.password
sudo chmod 777 jmxremote.password
  
  如果遇到关闭tomcat服务报:端口已经被占用的解决方案:
  
  查看进程的pid
  






Java代码

  • netstat -anp | grep 6001
netstat -anp | grep 6001
  
  后面能看到pid码
  






Java代码

  • sudo kill -9 pid码
sudo kill -9 pid码
  
  3、如何设置密码?
  
  修改文见:


$JAVA_HOME/jre/lib/management/jmxremote.access , 修改原来角色的权限,或新建角色,如新建
xushigang readonly


继续修改文件:



在$JAVA_HOME/jconsole_pwd/jmxremote.password, 修改原角色的密码, 如把# monitorRole QED前的注释去掉,并且把密码QED修改为你的密码, 增加一行 xushigang thisispassword



对我很有帮助的文章:



http://blog.dev2dev.us/2011/03/monitor-with-java-visualvm/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-96924-1-1.html 上篇帖子: 连接MYOB ODBC,在MyEclipse 下Commit成功,在Tomcat下单独运行,Commit显示Connection 已经关闭 下篇帖子: Tomcat容器管理之安全防护
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表