JMX让程序有被管理的功能,它的应用场景非常多。总的来说只要是运行在java虚拟机上的应用,例如tomcat、 jboss 、web app等都可以通过jmx方式来进行数据监控或者在程序运行的状态下对程序进行“操作”,在不需要太多的工作和努力情况下让开发或者运维人员对程序的运行及其所处理的数据的性质获得深入了解。

JMX介绍:

Jmx(Java Management Extensions)java管理拓展

JMX特点:

JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

总的来说:JMX 既是 Java 管理系统的一个标准,一个规范,也是一个接口,一个框架。

JMX的体系层次结构:

jmx1

在java中通过以上三层的处理将jvm的resource获取到。在java se中提供了jmx在jdk的一个应用包:java.lang.management 、javax.management

Kafka:

Kafka是由LinkedIn开发的一个分布式的消息系统。因其水平扩展能力及高吞吐率的优点被选作为BSA平台的消息系统。它是BSA平台的数据入口,对其关键参数的监控有助于平台使用者对整个平台的运行情况的把握。

Kafka的官方文档对kafka的监控指标有了讲解(http://kafka.apache.org/documentation.html 6.6节),该文档中也讲述了kafka是通过JAVA Metrics进行内部状态的监控,并且通过jmx对metric进行report。

监控设计:

jmx2

启动jmx端口有两种方式:

方式一:在运行启动命令前 加上系统预留的JMX_PORT

方式二:修改kafka-server-start.sh 加入以下代码

打开JConsole,

输入,service:jmx:rmi:///jndi/rmi://10.67.1.105:9999/jmxrmi

通过jconsole来观看其metrics信息

jmx3

Jconsole只能初浅的查看一些metrics信息,还不能达到监控的级别。

步骤三:通过定时job来获取metrics数据并且传到管理节点存储,组织数据进行展示。

数据获取的关键代码如下:

定义连接信息:(分布层)

获取接口层:(代理层)

处理层:(指令层)

步骤四:数据整理,拼接前端需要的json

步骤五:监控数据展示效果

jmx4

结束:

JMX让程序有被管理的功能,它的应用场景非常多。总的来说只要是运行在java虚拟机上的应用,例如tomcat、 jboss 、web app等都可以通过jmx方式来进行数据监控或者在程序运行的状态下对程序进行“操作”,在不需要太多的工作和努力情况下让开发或者运维人员对程序的运行及其所处理的数据的性质获得深入了解。在监控层面上来讲,现在大多数的应用都支持jmx,其开发的端口可为我们运维监控提供了简单,可靠的数据接口。

如果您需要了解更多内容,可以
加入QQ群:570982169、486207500
直接询问:010-68438880-8669

 

源链接

Hacking more

...