内容简介:应用要监控,快用 MBean
做为一款发行多年的成熟开源应用服务器,Tomcat 有众多的优点,其中方便的监控就是其中之一。
在 Tomcat 中,要实现监控,无论是监控应用,还是监控容器内部,都可以通过 JMX 的方式实现。
打开JConsole的窗口可以看到,在列出的本地JVM进程中,包含已经启动的 Tomcat 进程,其中名称一栏是当前应用的 Main-Class 的名称, PID 和 jps 命令显示一致。对于不清楚哪个是要 attach 的应用时,可以通过 jps 命令显示详情,通过载入的配置,JVM 参数等来明确。(jps 命令请参考这篇 你可能不知道的几个 java 小工具 )
attach之后,就会看到 Tomcat 以及 JVM 对外暴露的一系列 对象 ,在 JMX 里称之为 MBean 。 这里 JConsole 仅仅是一个 Client, 我们所连接到的这个进程所提供的,是一个 Server, JMX 里称为 MBeanServer 。这些 MBean 就是 这个Server 上对外提供属性和方法的对象。
下面这张图,是 attach 到 Tomcat 进程后看到的 一些MBean, Catalina 这个很明显是 Tomcat 提供的, 一些java开头的,是 JVM 提供的。
这里的 Engine 就是一个MBean, 红框中的属性和操作,是MBean对象提供的可供读取和执行的内容, 而右侧这里的ObjectName,是我们在一个MBeanServer上 来定位一个MBean 的名称。
JMX
说到MBean,就不得不提 JMX。什么是JMX?
JMX 是 Java Management Extensions 的缩写,Wikipedia上这样介绍:
JMX is a Java technology that supplies tools for managing and monitoring applications, system objects, devices (such as printers) and service-oriented networks. Those resources are represented by objects called MBeans (for Managed Bean).
最主要的功能,是用来对应用进行 管理 和 监控 。我们上面提到的几个概念,就是 JMX 中最核心的几个概念。
wikipedia上这张图借来一用。我们看到 Console 通过不同的协议连接到MBeanServer上。
JMX 在 Tomcat 中的使用
Tomcat 使用 JMX 实现其自身的监控和管理。其中 我们在Catalina 包下看到的这些 MBean,在不同的包中有不同的MBean 描述文件描述。
如果对于自己部署的应用有监控和管理的需要等,我们自己也可以开发MBean,然后直接获取平台的MBeanServer,这样就可以和Tomcat的进程在一起。
Tomcat 内部对于一些应用部署,属性提供等都可以通过 JMX 的形式来完成,我们之前写过一些这部分的内容:
里面有介绍IDE内应用部署是如何通过JMX实现的等。
此处,当前 Tomcat 内部署了哪些Web应用,同时创建了哪些 线程池, Connector 等,都可以通过 JMX 的 MBean 进行获取和管理。
要获取这些信息,所需要做的,仅仅是写一个 JMX 的 Client,然后通过 ObjectName 读取其即可,所有的属性读取,操作执行,完全可以理解成普通的JavaBean 在进行反射调用一样。
对于一个Web应用,在web.xml里配置的那些信息,在MBean里一样有体现
还有关于请求数的统计
一个Web应用内的 Servlet 、Jsp 都分别罗列出来,做为不同的MBean,他们的ObjectName格式类似这样:
Catalina:j2eeType=Servlet,WebModule=// localhost/examples ,name= HelloWorldExample ,J2EEApplication=none,J2EEServer=none
只需要修改黑体字部分即可。
而通过 JMX 实现的管理,是通过对MBean提供的一些操作的执行,来实现应用内一些内容的动态变更。比如像Connector的启动暂停。
可以在Jconsole里直接进行方法的调用。
怎么样,还不错吧,要不要试试?
端午休了小长假,后台留言没能及时回复,有不少朋友的留言因为微信的定时清理已经看不到了,最近的一些也因为时间限制不能再进行回复了,抱歉!
目前仅能看到这两位的留言了,如果还有问题可以继续留言。
☆★☆更多精彩内容 ☆★☆
一台机器上安装多个Tomcat 的原理(回复001)
监控Tomcat中的各种数据 (回复002)
启动Tomcat的安全机制(回复003)
乱码问题的原理及解决方式(回复007)
Tomcat 日志工作原理及配置(回复011)
web.xml 解析实现(回复 012)
线程池的原理( 回复 014)
Tomcat 的集群搭建原理与实现 (回复 015)
类加载器的原理 (回复 016)
类找不到等问题 (回复 017)
代码的热替换实现(回复 018)
Tomcat 进程自动退出问题 (回复 019)
为什么总是返回404? (回复 020)
...
iOS赞赏码!
PS: 对于一些 Tomcat常见问 题,在公众号的【 常见问题 】菜单中,有需要的朋友欢迎关注查看。
觉得本文对你有帮助?请分享给更多人 支持一下吧,谢谢
关注『 Tomcat那些事儿 』 ,发现更多精彩文章!了解各种常见问题背后的原理与答案。深入源码,分析细节,内容原创,欢迎关注。
以上所述就是小编给大家介绍的《应用要监控,快用 MBean》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Kubernetes 应用监控
- springboot应用接入druid监控
- 使用VisualVM监控应用GC
- 基于AppDynamics的应用监控系统
- Node应用没有错误监控怎么行?
- 云原生应用 Kubernetes 监控与弹性实践
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
松本行弘的程式世界
松本行弘 / 鄧瑋敦 / 博碩 / 2010年07月27日
讓Ruby之父教您大師級的程式思考術! 本書以松本行弘先生對程式本質的深層認知、各種技術之優缺點的掌握,闡述Ruby這套程式語言的設計理念,並由此延伸讓您一窺程式設計的奧妙之處。本書內含許多以Ruby、Lisp、Smalltalk、Erlang、JavaScript等動態語言所寫成的範例,從動態語言、函數式程式設計等領域開展您的學習視野。 本書精華: ‧物件導向與抽象化 ‧......一起来看看 《松本行弘的程式世界》 这本书的介绍吧!