博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kafka 监控之Mx4jLoader
阅读量:5922 次
发布时间:2019-06-19

本文共 1880 字,大约阅读时间需要 6 分钟。

hot3.png

      接上一篇kafka监控的博文讲起,在kafka 源码kafka/utils中有Mx4jLoader.scala源码,源码注释功能如下:
/** * 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监控,改函数方法名特别有趣,看完源码后我们可以更清楚作者的风趣了:    

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可以在网站 上找到,具体使用3.0.1版本的jar包,也许你要问为什么:因为坑爹的1.1版本中根本没有诸如mx4j.tools.adaptor.http.HttpAdaptor等class。
     将对应jar放到classpath下后,重新运行broker,日志如下:

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

   

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

   

转载于:https://my.oschina.net/u/591402/blog/158150

你可能感兴趣的文章
TSC: Intro & Comments
查看>>
小程序wx:for循环列表数量的限制
查看>>
SQLite数据库管理工具,开发中...
查看>>
Keepalive双主搭建配置
查看>>
标签分类
查看>>
Jquery ajax上传文件到服务器
查看>>
Java测试框架Mockito源码分析
查看>>
一些内置方法的使用,一个惊艳的小程序,内置方法的一些使用
查看>>
OC基础第二讲
查看>>
Angular js ie 7,8 兼容性
查看>>
CentOS-用户的管理
查看>>
ruby代码重构第一课
查看>>
Pandas Installation
查看>>
关于有些.aidl源码的eclipse编译后生成.java文件的错
查看>>
K-Means 算法
查看>>
比幅测向及圆锥效应
查看>>
background-position用法详解
查看>>
剑与魔法
查看>>
利用gearman同步mysql数据到redis
查看>>
HDU-1325-Is It A Tree?(并查集+有向树)
查看>>