服务器-jboss--jvm检测--用JMX对Resin内存状态进行监控

用JMX对Resin内存状态进行监控  


通过JMX我们可以轻松的实现对JVM的监控,运行jdk/bin目录下的jconsole程序,你就可以看到本地所有可监控的JVM实例。如果你运行的是如Resin之类的容器,希望该JVM实例能在远程被监控,那么可以试试以下的方法。


原理就是通过添加一些JMX相关的JVM启动参数来控制JMX的行为,例如端口,验证信息等。Resin3.1.X版本的配置文件中有一些设置JVM args的配置项目,可以直接在里面修改。当然我们也可以通过修改httpd.sh或者httpd.exe的快捷方式来添加JVM启动参数。具体如何操作可以根据实际情况选择。


这里以Resin3.1.18为例,采用的是直接修改resin.conf的方式来实现。
       <!--
         - The JVM arguments
        -->
      <jvm-arg>-Xmx256m</jvm-arg>
      <jvm-arg>-Xss1m</jvm-arg>
      <jvm-arg>-Xdebug</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.port=9999</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>

经过以上配置后你就可以在远程机器上用IP和端口9999进行远程Resin实例的监控了,记住防火墙要开放相应端口的访问。


注意:经验证某些情况下还需要对JVM指定hostname,客户端才能连接,方法: -Djava.rmi.server.hostname=<服务程序JVM所在机器IP>


注意:以上方法不只限于Resin,参数作用的是JVM,对任意JAVA程序都是适用的,举例如:
java -Xdebug -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.port=10000 -Djava.rmi.server.hostname=192.169.100.159 T


如果你希望对JVM的访问增加一些安全验证,那也是可以的。我们只需要如下配置:
       <!--
         - The JVM arguments
        -->
      <jvm-arg>-Xmx256m</jvm-arg>
      <jvm-arg>-Xss1m</jvm-arg>
      <jvm-arg>-Xdebug</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.port=9999</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:/work/server/resin-3.1.8/jmxremote.access</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.password.file=D:/work/server/resin-3.1.8/jmxremote.password</jvm-arg>  
jmxremote.access和jmxremote.password文件可以在JDK的jre\lib\management目录下找到。直接copy出来就可以。


jmxremote.access包含了登录用户的权限控制信息,jmxremote.password包含了用户名和登录密码信息,配置非常简单。网上有资料说jmxremote.password文件需要进行文件系统的访问权限设置,设置为只有owner可读,否则会抛出错误信息:
错误: 必须限制口令文件读取访问: XXX
解决办法是修改jmx权限文件的访问权限:chmod 644 jmxremote.access jmxremote.password
由于我使用的WinXP不便于进行实验所以并没有验证过。也有资料说copy出来的文件需要把注释都删除我感觉应该不至于,但同样因为没有验证过,且只在这里提一提。如果还遇到其他问题那可以参考一下以下的参考资料。


参考资料:
http://hi.baidu.com/cococup/blog/item/cbe632457f0cef88b2b7dce4.html
http://aofengblog.blog.163.com/blog/static/6317021200871711013857/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值