JMX学习(1)

 JMX(Java Management Extensions) 即 Java 管理扩展: 是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用以上为百度百科中的定义。

JMX基本架构


从图中我们可以看到,JMX的结构一共分为三层,从下往上:

设备层(Instrumentation Level),也称为 工具层

定义了编写可由 JMX 管理的资源的规范。主要是MBean,MBean分为四种类型: 标准、动态、开放、模型。 通知模型:Notification、NotificationListener等类;  MBean元数据类:Attribute、Opreator等类

代理层(Agent Level)

Agent层构建在设备层之上,使用并管理设备层内部描述的组件。通常Agent由一个MBeanServer和多个系统服务组成。MBean Server则是启动与JVM内的基于各种协议的适配器.

分布服务层(Distributed Service Level)

也称为 Remote Management面向用户的程序, 提供远程访问的入口。它定义了一系列用来访问Agent的接口和组件,包括Adapter和Connector的描述

JMX Agent与Distributed之间是通过协议链接的,这协议可能包含:HTTP、SNMP、RMI、IIOP等。Agent中有针对上面协议的各种适配器。可以解析通过相应协议传输过来的数据。 

      要使一个Java对象可管理,则必须创建相应的MBean对象,并通过这些MBean对象管理相应的Java对象。当拥有MBean类后,需要将其实例化并注册到MBeanServer上。

     JMX 也可以用来监控和管理Java虚拟机。


     JDK5.0以上版本均提供了JMX接口及实现代码。jdk的bin目录下也提供了可视化的客户端工具 JConsole及JVisualVM。我本机安装了JDK6的版本,进入bin目录下,双击jconsole.exe 启动JConsole:
          

         由于我本机启动了MyEclipse2015,同时在MyEclipse2015中也启动了Tomcat,所以在本地进程中能够看到org.apache.catalina.startup.Bootstrap start的进程,选择该本地进程,点击 连接 后进入Java监视和管理控制台,可以看到MBean的Tab项
          

      点击 MBean选项卡,可以看到监控到的Tomcat中的MBeanInfo,关于Tomcat中的MBean的详情,计划在后续的Tomcat源码学习系列中说明,这里只是个初步展示。
      

      

       进入bin目录下,双击jvisualvm.exe, 进入Java VisualVM,可以看到本地的Tomcat及MyEclipse进程:
        
        

    双击Tomcat进程,可以看到对Tomcat的监控情况:
        

      

        建立远程Tomcat监控:
        需要配置远程主机(IP: 10.176.8.222)上tomcat的bin目录下的 catalina.bat(windows操作系统)中,set JAVA_OPTS 后增加以下:
       -Dcom.sun.management.jmxremote.port=9099 
       -Dcom.sun.management.jmxremote.ssl=false
       -Dcom.sun.management.jmxremote.authenticate=false
       -Djava.rmi.server.hostname=10.176.8.222

        保证 远程主机上的Tomcat正常启动。

         在本机的Java VisualVM程序中配置:   添加远程主机,输入远程主机IP
        
        

          添加 JMX 连接:
        

           添加成功后可以远程监控Tomcat的使用情况了:
        
         

          过程中遇到很奇怪的问题: 10.176.8.222 远程主机是一台开发机器,如果是通过MyEclipse2015开发工具启动Tomcat 的, 本机通过Java VisualVM无法建立JMX连接;
始终在报错:

           

         在远程主机上不通过MyEclipse启动,直接在Tomcat的bin目录下启动后,终于可以正常建立 JMX连接; 不知道是什么原因;
      建立连接 远程linux服务器上的Tomcat,网上有,如:http://blog.csdn.net/cyjch/article/details/51889760


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值