linkedin开源的kafka-monitor安装文档##
linkedin 开源的kafka-monitor的安装使用可以参考官方的readme;流程介绍的已经比较清楚,但是还是有一些地方需要修正。让大家可以少填一些坑。
-
前提条件###
Kafka Monitor 需要 Gradle 2.0 或者更高版本. 编译和执行都需要在java8环境下。
-
下载源码###
$ git clone https://github.com/linkedin/kafka-monitor.git $ cd kafka-monitor $ ./gradlew jar
如果编译过程中下载类库速度缓慢,可以改为国内库。cd kakfa-monitor;vi build.gradle
repositories {
//mavenCentral()
maven { url 'http://10.150.144.28/nexus/content/groups/public' }
} -
运行kafka-monitor的测试服务并指定Config File
$ ./bin/kafka-monitor-start.sh config/kafka-monitor.properties
运行会报错:Exception in thread "main" java.lang.RuntimeException: Can not find valid partition number for topic test. Please verify that the topic has been created. Ideally the partition number should be a multiple of number of brokers in the cluster.
at com.linkedin.kmf.services.ProduceService.<init>(ProduceService.java:75)
at com.linkedin.kmf.tests.BasicEndToEndTest.<init>(BasicEndToEndTest.java:54)
at com.linkedin.kmf.tests.BasicEndToEndTest.main(BasicEndToEndTest.java:230)发现 zookeeper.connect需要指定kafka的根路径,如下:
"end-to-end": {
"class.name": "com.linkedin.kmf.tests.BasicEndToEndTest",
"topic": "kmf-topic",
"zookeeper.connect": "192.168.108.50:2181/kafka",
"bootstrap.servers": "192.168.108.50:9092",
"produce.record.delay.ms": 100,
"produce.producer.props": {
"client.id": "kmf-client-id"
},
"consume.consumer.props": {
"group.id": "kmf-group-id"
}
} 运行 BasicEndToEndTest监控kafka集群
这里的zookeeper也需要指定根路径。
$ ./bin/end-to-end-test.sh --topic test --broker-list localhost:9092 --zookeeper localhost:2181/kafka
-
通过UI实时的获取度量的值
在浏览器打开
localhost:8000/index.html
我们可以编辑 webapp/index.html 轻松实现添加一个度量的或者删除一个。
-
使用http 请求查询其他度量值
curl localhost:8778/jolokia/read/kmf.services:type=produce-metrics,name=*/produce-availability-avg
我们可以根据JMX metric 的object-name和attribute-name 查询其他的JMX metric。
运行代码格式检查checkstyle
./gradlew checkstyleMain checkstyleTest
使用IDE构建项目
./gradlew idea
./gradlew eclipse
更多信息参考kafka-monitor的官网: