简体   繁体   English

zabbix对Kafka的JMX监视

[英]zabbix JMX monitoring of kafka

I am trying to monitor java app Apache Kafka Server from zabbix via zabbix java gateway and I am a bit struggling with zabbix set up. 我试图通过zabbix java网关从zabbix监视Java应用程序Apache Kafka Server,但是我在设置zabbix方面有些挣扎。 I was able to monitor JVM standard metrics like LoadedClassCount etc. But I cannot find proper setup for Kafka metrics. 我能够监视JVM标准度量标准,例如LoadedClassCount等。但是我找不到适合Kafka度量标准的设置。

JConsole kafka JMX属性

My zabbix java gateway JMX key is following: 我的zabbix Java网关JMX密钥如下:

jmx["kafka.server.BrokerTopicMetrics:type=AllTopicsMessagesInPerSec",Count]

I tried various combination but so far with no luck. 我尝试了各种组合,但到目前为止没有运气。 Any hints what might be wrong? 任何提示可能有什么问题吗?

It seems like JMX objects are nested. 看来JMX对象是嵌套的。

Update: I tried to replicate situation avoiding a Kafka MBeans using standard JVM MBeans 更新:我尝试复制情况以避免使用标准JVM MBean避免使用Kafka MBean 标准JVM MBean

Using Zabbix config 使用Zabbix配置

jmx[java.lang:type=GarbageCollector,ConcurrentMarkSweep.CollectionCount]

And I am getting following exception in log: 我在日志中收到以下异常:

2014-07-09 08:00:11.664 [pool-1-thread-5] DEBUG com.zabbix.gateway.ItemChecker - caught exception for item 'jmx[java.lang:type=GarbageCollector,ConcurrentMarkSweep.CollectionCount]'
javax.management.InstanceNotFoundException: java.lang:type=GarbageCollector
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1118) ~[na:1.6.0_24]
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:679) ~[na:1.6.0_24]
        at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:672) ~[na:1.6.0_24]
        at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427) ~[na:1.6.0_24]
        at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:90) ~[na:1.6.0_24]
        at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1285) ~[na:1.6.0_24]
        at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1383) ~[na:1.6.0_24]
        at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:619) ~[na:1.6.0_24]
        at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.6.0_24]
        at java.lang.reflect.Method.invoke(Method.java:616) ~[na:1.6.0_24]
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) ~[na:1.6.0_24]
        at sun.rmi.transport.Transport$1.run(Transport.java:177) ~[na:1.6.0_24]
        at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_24]
        at sun.rmi.transport.Transport.serviceCall(Transport.java:173) ~[na:1.6.0_24]
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) ~[na:1.6.0_24]
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) ~[na:1.6.0_24]
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) ~[na:1.6.0_24]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.6.0_24]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.6.0_24]
        at java.lang.Thread.run(Thread.java:679) [na:1.6.0_24]

Thx 谢谢

已解决,以下是对我有用的作品

jmx["\"kafka.server\":type=\"BrokerTopicMetrics\",name=\"AllTopicsMessagesInPerSec\"",Count]

I have been banging my head on this for a while. 我已经为此努力了一段时间。 This is what worked for me: 这对我有用:

jmx["kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec",Count]

Zabbix v2.2.2 Zabbix v2.2.2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM