Java分布式应用学习笔记08JMX规范与常用的监控场景(四)

2014-11-24 02:38:33 · 作者: · 浏览: 7
remote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"


我们运行startup.bat文件,之后开启JConsole,远程登录tomcat

之后即可查看远程Tomcat资源



而Tomcat自身这个容易也有很多模块支持JMX规范,可以通过JConsole进行一些MBean的管理


6. 监控JavaEE容器

说完Tomcat这种Web容器,不得不说说JavaEE容器,就将开源的JBoss拉出来看看,其实JBoss自身因为是一个JavaEE容器,而JMX是属于JavaEE5范畴内的规范,所以JBoss自身就拥有很多JMX的特性,比如咱们动态添加一个DataSource资源时候,后台的JBoss控制台console的界面就会自动更新运行时的状态,数据源的连接状态也能一览无余的显示给后台使用者。这些实际上都是JMX的特性。只不过结合了Web页面的UI罢了。其实基于Web页面,大家就能看到JBoss自身的运行状况了

如果需要JConsole连上远端的JBoss,和Tomcat一样,需改一下配置文件run.bat,linux的就不赘述了,将以下代码段
Java代码
if "x%JAVA_OPTS%" == "x" (
set "JAVA_OPTS=-Dprogram.name=%PROGNAME%"
) else (
set "JAVA_OPTS=-Dprogram.name=%PROGNAME% %JAVA_OPTS%"
)


替换成
Java代码
if "x%JAVA_OPTS%" == "x" (

set "JAVA_OPTS=-Dprogram.name=%PROGNAME% -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

) else (
set "JAVA_OPTS=-Dprogram.name=%PROGNAME% -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false %JAVA_OPTS%"
)


之后启动JConsole即可远程连接JBoss,地址:192.168.1.100:9999


可以看出Tomcat与JBoss的消耗资源真的不是一个数量级的。
7. 总结
这次是介绍了JMX的使用场景和一些分布式系统中常用的配置和监控情形,对于JMX规范本身,尤其是重要的MBean并没有做过多的介绍,其实MBean有很多种情况,这一篇文章并不能尽述。知道他是干什么,遇到那些晦涩难懂的理论就不再惧怕了,有时间打算下次再详细说说JMX MBean的各种使用情况。

作者“自我否定的勇气,兼收并蓄的气度”