最新版本的Tomcat 5.5.9以上采用Java管理扩展(JMX)管理beans(managed beans)技术实现了对servlet容器的管理,其中包括监测所有的集群(cluster)元素和session复制情况。
而J2SE5.0在监测和管理方面的支持很全面,拥有对Java平台及运行于其上的应用进行远程监测能力。J2SE 5.0中包含了Java管理扩展(JMX)远程监测技术,这是对JVM监控能力的一个新的补充。
有了最新版的Tomcat和J2SE 5.0的JMX技术,我们就可以通过JMX来使用servlet容器的属性和方法,同时减少与JMX相关的复杂编码。我在本文中将简单介绍如何在启动Tomcat servlet容器时启用远程JMX监测。
一、JMX 客户端
JMX客户端是一个用来连接JMX代理(运行在本地或远程)的图形化用户界面(客户机/服务器或瘦客户端)。理想的JMX客户端具备以下特点,能够有效地监测应用服务器而不为其带来额外的负担:
---对系统和网络资源的低占用
---能保持系统的稳定和性能
---少量的或无需特别设置(即使需要设置,也是简单明了而不是编程方式的)
---可提供良好的报告
J2SE 5.0附带了一个称为Jconsole的JMX客户端工具,可用来查看JVM运行时的详细情况。Tomcat的安装中包含了一个叫做JMXProxyServlet的JMX servlet,可用来查看、更新Tomcat MBeans的属性。它是一个能查看、操作运行于Tomcat容器中的MBeans的轻量级代理,通过与命令行脚本共同作用来监测和改变Tomcat的内部运行。
除了这两个工具,还有几个第三方开源JMX客户端应用程序:
---XMOJO
---jManage
---MX4J
---Spring JMX
---JMX-HTML适配器
---MC4J JMX控制台
在本文中我将介绍如何安装和配置MC4J,远程连接到Tomcat Servlet容器,以及监测服务器集群所有的MBeans组件。
二、配置 J2SE 5.0 JMX 环境:
为JMX设置系统属性
只有对一些系统属性进行设置后才能使用JMX远程监测,这些属性由一个在JAVA_HOME/lib/management目录下名为management.properties的属性文件设定。表2给出了启用JXM监测所必须设定的属性。
表2 启用JMX监测所需的系统属性
属性名 |
值 |
com.sun.management.jmxremote.port |
9393 |
com.sun.management.jmxremote.ssl |
false |
com.sun.management.jmxremote.authenticate |
true |
com.sun.management.jmxremote.password.file |
JAVA_HOME/jre/lib/management/jmxremote.password |
com.sun.management.jmxremote.access.file |
JAVA_HOME/jre/lib/management/jmxremote.access |
设置密码文件非常重要,特别是在多用户的环境下。我按以下步骤在JAVA_HOME/lib/management目录下建立密码文件:
---用密码模板文件(文件名jmxremote.password.template)拷贝出一个名为jmxremote.password的新文件
---将密码文件的文件权限设置为只有你能读写
---为角色设置密码,如monitorRole 和controlRole
---当启动JVM时系统属性已经设置成表2的样子
三、设置 Tomcat 启动参数:
为了能够在启动Tomcat服务器时启用远程JMX监测,要对位于CATALINA_HOME/bin目录下的 Tomcat启动脚本(catalina.bat 或catalina.sh)做如下修改:
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=9393
四、用MC4J实现JMX远程监测与管理
MC4J控制台提供了以下功能:
---以树状方式显示MBeans的属性、操作和通知
---设置MBeans属性值
---执行MBeans操作
---连接多个J2EE应用服务器
---图形化显示MBeans属性
我在本文的示例中用的是MC4J 1.2 Beta 9。安装MC4J可从SourceForge下载可执行文件(MC4J-12b9-Windows.exe),然后双击该文件进行安装,安装过程中会提示选择JDK宿主目录(请选择J2SE 5.0的安装路径,J2SE才全面支持JMX)和MC4J安装目录(本文是安装在c:\dev\tools目录下)。
双击可执行文件(C:\dev\tools\mc4j\MC4J Console 1.2b9.exe)启动MC4J。
控制台启动后,创建一个新的连接绑定到JMX服务器上。用Management菜单的Create Server Connection选项新建一个连接,命名为Tomcat-5.5.9-instance1,该连接的设置如表4所示:
表4 MC4J的Tomcat连接设置:
属性名 |
值 |
Name |
tomcat5.5 |
Initial Context Factory |
com.sun.jndi.rmi.registry.RegistryContextFactory |
Servet URL |
service:jmx:rmi:///jndi/rmi://localhost:9393/jmxrmi |
Principle |
monitorRole |
Credentials |
QED |
注意:你需要在classPathEntries参数中指定catalina.jar、catalina-cluster.jar和 catalina-optional.jar文件(位于%CATALINA_HOME%\server\lib\目录下)。
当Tomcat服务器群启用了远程JMX,再配置的MC4J,那么MC4J就可以连接到Tomcat的JMX 了。
五、小结
在本文中你看到了如何运用JMX MBeans技术以及在JMX控制台(MC4J)的帮助下从远程监测Tomcat服务器),你会发现用J2SE 5.0提供的JMX技术监测J2EE应用服务器(或者servlet容器)是多么的方便和强大。
有了远程JMX技术,开发者可以监测他们在服务器上的应用程序,发现J2EE应用中需要调整和优化的瓶颈,从而改善应用的性能和伸缩性。网管可以看到服务器的统计数字,如CPU使用率、线程数、内存使用率,以评估当前和未来的负载量需求。运营部门可以通过远程JMX监测来检查服务器状态和阀值溢出警报,提前发现任何与服务器有关的问题。
在使用JMX监测应用服务器时安全是另一个要考虑的重要因素,特别是在产品环境下。比如必须通过安全可控的方式(使用用户名、密码)访问JMX控制台,只允许经过授权的用户访问、查看和修改MBeans的属性和操作。系统管理员应当在服务器监测控制台上对MBeans属性和操作级别的访问进行细粒度的控制,还要将所有的基于JMX访问用户的活动记录到日志文件中供以后的报告和审计之用。
JMX客户端为远程绑定到各种应用服务器、监测服务器状态以及运行于这些服务器之上的应用提供了一个集中的监测控制台。在企业对其所有的服务器和应用进行生命期管理方面,远程JMX监测是个相当不错的解决方案。
分享到:
相关推荐
视频文件---! <br>基于JMX,用MC4j远程监控Tomcat5.5 用MC4J实现JMX远程监测与管理
使用JDK自带的jconsole插件,我们可以连接到tomcat,测试jmx远程监控是否成功。如果连接不成功,请检查Linux环境下/etc/hosts文件,将内的IP更改为Linux主机的IP,然后保存,重启机器,再次启动tomcat,使用jconsole...
使用jconsole远程监控tomcat jmx 实验操作详细信息,本人实验实操
在本项目中,"jmx监控weblogic,tomcat,websphere源码"涉及了使用JMX来监控三个主流的Java应用服务器:WebLogic、Tomcat和WebSphere。这些服务器都是企业级应用部署的常见选择,对它们的监控对于确保系统性能、稳定性...
下面我们将详细介绍如何设置和使用JMX来监控Tomcat。 1. **开启JMX支持** 在Tomcat的`conf/server.xml`文件中,找到`<Server>`标签,在其中添加一个`Service`,并配置一个`Connector`来启用RMI(Remote Method ...
本篇文章将详细介绍如何使用Zabbix监控Tomcat,特别是通过JMX(Java Management Extensions)来监控Tomcat,并涉及到相关的jar包和Zabbix模板。 首先,让我们了解一下`cmdline-jmx`和`catalina-jmx`这两个标签所指...
本文档“JMX如何使用”深入探讨了如何利用JMX在Java Web环境中进行远程服务器管理与监控。 1. **JMX简介** JMX允许开发者创建和注册管理 Bean(MBeans),这些Bean提供了对应用程序组件的访问接口,从而可以监控和...
### JConsole 远程监控 Tomcat 服务 #### 1. 概述 JConsole 是一个集成在 Java 开发工具包 (JDK) 中的图形用户界面 (GUI) 工具,它允许用户通过 Java 管理扩展 (JMX) 对正在运行的 Java 虚拟机 (JVM) 进行监控。...
jvisualvm 远程访问 Linux ...使用 jvisualvm 远程访问 Linux 环境中的 Tomcat 需要安装和配置 jdk 和 Tomcat,然后使用 jvisualvm 的 JMX 方法或 jstatd 方法进行监控,最后添加 Visual GC 插件以获取更多的监控信息。
本文将介绍如何使用 Zabbix 通过 JMX 监控 Tomcat,帮助初学的朋友快速上手。 监控 Tomcat 的必要性 Tomcat 作为一个流行的 Java Web 服务器,广泛应用于各种 Web 应用程序中。然而,随着应用程序的复杂度增加,...
云服务上的tomcat监控使用到的jar包,需要的可以直接下载,注意tomcat的版本需要和jar包的版本对应
**Tomcat开启远程JMX连接方式详解** Java Management Extensions (JMX) 是Java...通过JMX,你可以使用各种工具(如JConsole、VisualVM、JMX Console插件等)进行远程监控,以便更好地管理和优化Tomcat服务器的性能。
在IT运维领域,监控系统的重要性不言而喻,特别是对于基于Java的应用服务器,如Tomcat,实时监控其运行状态能够确保服务的稳定性和性能。Zabbix是一款广泛应用的开源监控工具,能够对各种IT资源进行精细化监控。本篇...
使用jmx监控可以实时监控ActiveMQ的运行状态,包括队列长度、消息数量、消费者数量等信息。通过jmx监控,可以快速地检测和解决ActiveMQ中的问题,从而提高系统的可靠性和稳定性。 在生产环境中,jmx监控是非常重要...
对于HBase和Hadoop,JMX可以用来监控诸如节点健康状况、内存使用、磁盘I/O、网络流量等关键指标。 在监控HBase时,我们可以通过JMX获取HMaster、RegionServer等组件的状态,包括 Region分布、内存使用情况、...
当我们谈论"jboss远程调用JMX"时,我们关注的是如何通过网络从一个JMX客户端连接到运行在JBoss服务器上的JMX服务,以便进行远程管理和监控。 首先,我们需要了解JMX的基本概念。MBean是JMX的核心,它是一个Java对象...
在本场景中,我们关注的是如何利用JMX来远程监控服务器上的关键资源,如CPU利用率、内存状态、已加载类的数量以及堆内存信息。下面将详细探讨这些知识点。 一、JMX 概述 JMX 是一种服务导向架构,它定义了管理和...
Zabbix监控Tomcat详细指标(附模板)的资料 cmdline-jmxclient-0.10.3 catalina-jmx-remote