kafka 监控之Mx4jLoader

接上一篇kafka监控的博文讲起,在kafka 源码kafka/utils中有Mx4jLoader.scala源码,源码注释功能如下:
?
1
2
3
4
5
6
7
8
9
/**
  * If mx4j-tools is in the classpath call maybeLoad to load the HTTP interface of mx4j.
  *
  * The default port is 8082. To override that provide e.g. -Dmx4jport=8083
  * The default listen address is 0.0.0.0. To override that provide -Dmx4jaddress=127.0.0.1
  * This feature must be enabled with -Dmx4jenable=true
  *
  * This is a Scala port of org.apache.cassandra.utils.Mx4jTool written by Ran Tavory for CASSANDRA-1068
  * */

      它通过调用maybeLoad函数实现基于http的mx4j监控,改函数方法名特别有趣,看完源码后我们可以更清楚作者的风趣了:    

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
try {
       debug( "Will try to load MX4j now, if it's in the classpath" );
 
       val mbs = ManagementFactory.getPlatformMBeanServer()
       val processorName = new ObjectName( "Server:name=XSLTProcessor" )
 
       val httpAdaptorClass = Class.forName( "mx4j.tools.adaptor.http.HttpAdaptor" )
       ……
 
       val xsltProcessorClass = Class.forName( "mx4j.tools.adaptor.http.XSLTProcessor" )
       ……
       info( "mx4j successfuly loaded" )
       true
     }
     catch {
       case e : ClassNotFoundException = > {
         info( "Will not load MX4J, mx4j-tools.jar is not in the classpath" );
       }
       case e = > {
         warn( "Could not start register mbean in JMX" , e);
       }
     }

       因为kafka源码包中并不提供mx4j-tools.jar,因此上述代码实际不能实现监控,你懂了maybeLoad的具体意义了吧??而且感觉开发者应该也有过相关jar包
       Mx4jLoader在KafkaServer.scala中调用,因此每开启一个kafka broker实际上也对应开启了一个监控模块,由于没有对应的jar包,实际运行broker时就会出现:

      对应具体的classpath是什么?具体分析日志,运行broker时会出现以下日志:

     上面显示了运行broker时会加载kafka中/core/lib_managed/scala_2.8.0/compile下的所有jar包,好,我们把对应的jar扔到该目录下吧。
     mx4j-tool.jar可以在网站http://mvnrepository.com/ 上找到,具体使用3.0.1版本的jar包,也许你要问为什么:因为坑爹的1.1版本中根本没有诸如mx4j.tools.adaptor.http.HttpAdaptor等class。
     将对应jar放到classpath下后,重新运行broker,日志如下:

     出现以上日志就表明你终于走到最后一步了,下面就是开启浏览器(具体输入ip:8082,如果你没有改kafka任何配置或源码,请一定记得端口是8082),happy你的成果吧,以下为最终监控界面结果:

   

    感谢公司张大神的帮助,最后要说的是,记得参与kafka 官方论坛,浏览相关maillist。还有,如果你还不能翻墙,那建议你还是先学会翻墙吧。

   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值