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

[经验分享] JMX管理Tomcat/Resin

[复制链接]

尚未签到

发表于 2017-1-23 09:20:33 | 显示全部楼层 |阅读模式
JMX管理Tomcat/Resin
WEB服务器2008-08-17 13:10:13阅读2147评论3  字号:大中小 订阅



.style1 { color: rgb(0, 0, 255); font-weight: bold; }
 文章声明
      
作者:
傲风(aofengblog@163.com)       编写时间:2008年08月17日
  网址:http://aofengblog.blog.163.com
作者保留所有权利,转载请保留文章全部内容!

  
环境Windows XP / Linux
JDK5Update15
Tomcat5.5.26
Resin 3.1.6

  

Jconsole简介
jconsole是一个JMX兼容的监视工具。它使用Java虚拟机的JMX机制来提供运行在Java平台的应用程序的性能与资源耗费信息。 位于JAVA_HOME/bin目录。


一、本地监控命令语法:jconsole [进程ID]
示例:jconsole 688

如何获取进程ID?


  • Windows上在任务管理器中查看。
  • UNIX上用ps查看。
  • 使用jps命令查看JVM的进程ID,请参考“jps - Java Virtual Machine Process Status Tool”。
DSC0000.jpg

jconsole和被监视的应用程序必须是使用同一个用户运行的,管理和监视系统使用操作系统的文件权限。在Windows操作系统如果要支持远程监控还需要磁盘格式为NTFS。
如果你没有指定PID,直接运行jconsole,jconsole会自动的探测出本地运行的所有java应用程序并显示一个对话框让你选择你想监控的程序。如下图所示:

DSC0001.jpg
使用jconsole监控本地应用的详细说明和使用可以参考官方文档:Local JMX Monitoring and Management


二、远程监控

  命令语法:jconsole [主机地址:端口]
示例:jconsole 10.3.18.58:9009

可以直接在CMD中直接输入jconsole,然后在“JConcole:连接到代理”对话框中选择“远程”选项,输入主机和端口,如何设置用户名和密码,则还要输入用户名和密码,如下图所示:
DSC0002.jpg

使用jconsole监控远程应用的详细说明和使用可以参考官方文档:Remote Monitoring and Management


三、配置Resin3.0.x接受JMX管理
  在启动resin时加参数:
windows下
httpd.exe -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=9009-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false

Linux下
httpd.sh-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9009-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false


四、配置Resin3.1.x接受JMX管理
  以下配置在Windows和Linux下同时适用,打开conf/resin.conf 中的JMX配置信息如下:

  • 无限制访问
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.port=9009</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>


  • 需要用户名和密码访问
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.port=9009</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.authenticate=true</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.access.file=D:/temp/jmxremote.access</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.password.file=D:/temp/jmxremote.password</jvm-arg>

  
打开jconsole,用本地或远程方式进入,在MBean选项中将看到resin的MBean,如下界面所示:
DSC0003.jpg



五、配置Tomcat接受JMX管理
  打开Tomcat的bin/catalina.bat,如果为linux或unix系统,则为catalina.sh文件
找到 set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties,修改为:


  • 无限制访问
在"rem ---------------------------------------------------------------------------"下面添加一行:

setJAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false


  • 需要用户名和密码访问
在"rem ---------------------------------------------------------------------------"下面添加一行:
setJAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=D:/temp/jmxremote.password -Dcom.sun.management.jmxremote.access.file=D:/temp/jmxremote.access

  
打开jconsole,用本地或远程方式进入,在MBean选项中将看到Tomcat的MBean,如下界面所示:
DSC0004.jpg

同时还可用 service:jmx:rmi:///jndi/rmi://localhost:9008/jmxrmi 访问。

六、异常处理
  在配置Tomcat和Resin需要用户名和密码访问的时候,遇到了两个问题,害我弄了半天才摆平它们…… DSC0005.gif
1)如果在启动Tomcat/Resin时报错:“错误: 必须限制口令文件读取访问: D:/temp/jmxremote.password”。
解决:
因为jmxremote.password只允许拥有者访问,所以要删除其他的权限账号。


2)如果在启动Tomcat/Resin时报错:“错误: 代理抛出异常: java.lang.IllegalArgumentException: Syntax error in access evel entry []
解决:
因为从JAVA_HOME/jre/lib 目录下复制 jmxremote.access 和从 jmxremote.password.template 另存为 jmxremote.password 时没有删除里面的那些注释,将多余的文字删除即可。
jmxremote.access 文件内容示例如下:
aofeng readonly
nieyong readwrite

jmxremote.password 文件内容示例如下:
aofeng sys
nieyong pm



参考资料

  • Monitoring and Management Using JMX
  • How to a Secure Password File on Microsoft Windows Systems
  • Monitoring and Managing Tomcat
  • http://hithoper.blog.hexun.com/20917354_d.html
  
<正文结束>

运维网声明 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-332315-1-1.html 上篇帖子: maven使用之tomcat redeploy 下篇帖子: Tomcat 支持中文路径
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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