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

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

[复制链接]

尚未签到

发表于 2017-1-24 08:44:25 | 显示全部楼层 |阅读模式
  
环境
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 ---------------------------------------------------------------------------"下面添加一行:

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

  


  • 需要用户名和密码访问
在"rem ---------------------------------------------------------------------------"下面添加一行:
set JAVA_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 访问。



4.1 异常处理
在配置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

运维网声明 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-332661-1-1.html 上篇帖子: tomcat-严重: Error initializing endpoint 下篇帖子: tomcat 启动错误浅谈
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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