[Kafka]Monitor Kafka with jmxtrans

来源:互联网 发布:深圳压寨网络是培训么 编辑:程序博客网 时间:2024/06/07 07:13

现在公司使用的Monitoring and Reporting System是由ITG建置而成。

最近公司在QA环境上了Kafka,预计取代servicebus处理log作业,

由于telegraf无法直接收集JVM applications,

加上我们使用influxdb当我们的datasource,

GDD后发现jmxtrans完全符合我的需求,这篇简单纪录一下设定和使用方式。

1.所有kafka node必须启用JMX
这里写图片描述
2.下载jmxtrans并透过json设定收集JMX server

{  "servers" : [ {    "port" : "9991",    "host" : "192.168.10.136",    "alias": "kafka-1",    "ssl": false,    "username" : "",    "password" : "",    "queries" : [ {      "outputWriters" : [      {        "@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",        "url" : "http://192.168.10.98:8096/",        "database" : "kafka",        "username" : "1",        "password" : "1"      } ],      "obj" : "java.lang:type=Memory",      "attr" : [ "HeapMemoryUsage", "NonHeapMemoryUsage" ],      "resultAlias" : "jvmMemory"    }    ],    "numQueryThreads" : 1  } ]}

Note:你可以在每一台kafka node执行,我个人是在独立dashboard server收集所有远端kafka node的metrics,

另外你可以透过jconsole.exe查看你想要的kafka相关object,type和attribute
这里写图片描述
3.都没问题后,执行jmxtrans.jar

java -Djmxtrans.log.level=10 -jar jmxtrans.jar -e -f kafka.json -s 10

note:使用NSSM包装为windows services

最后再透过grafana建立漂亮的dashboard就可以收工了

参考

jmxtrans

Monitoring JVM applications with jmxtrans

shahsaifi/jmxtrans