Skip to main content
 首页 » 编程设计

apache-kafka之如何在 Kafka 代理上启用远程 JMX(对于 JmxTool)

2025年02月15日18cloudgamer

我通过添加在 Kafka 代理上启用了 JMX

KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true 
                -Dcom.sun.management.jmxremote.authenticate=false 
                -Dcom.sun.management.jmxremote.ssl=false 
                -Djava.rmi.server.hostname=<server_IP> 
                -Djava.net.preferIPv4Stack=true" 

但是,当我使用 kafka.tools.JmxTool 时要获取 JMX 指标,它仅输出 Unix 时间戳。为什么?
./bin/kafka-run-class.sh kafka.tools.JmxTool \ 
  --object-name 'kafka.server:type=BrokerTopicMetrics,name=AllTopicsMessagesInPerSec' \ 
  --jmx-url "service:jmx:rmi:///jndi/rmi://<server_IP>:9111/jmxrmi" 

我怎样才能让它打印出指标?

请您参考如下方法:

编辑 bin/kafka-run-class.sh 并设置 KAFKA_JMX_OPTS 变量

KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=your.kafka.broker.hostname -Djava.net.preferIPv4Stack=true" 

更新 bin/kafka-server-start.sh 添加以下行
export JMX_PORT=PORT