我通过添加在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"
Run Code Online (Sandbox Code Playgroud)
但是,当我使用'kafka.tools.JmxTool'来获取指标时,它会输出不是预期行为的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"
Run Code Online (Sandbox Code Playgroud)
上面的命令打印出Unix时间戳.我该如何解决这个问题,并打印出指标?
cha*_*han 19
编辑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"
Run Code Online (Sandbox Code Playgroud)
更新bin/kafka-server-start.sh添加以下行
export JMX_PORT=PORT
Run Code Online (Sandbox Code Playgroud)
如果您在同一节点上运行 Zookeeper,则JMX_PORT
内部设置bin/kafka-run-class.sh
将与 Zookeeper 发生冲突。最好是JMX
在相应的server-start
脚本中单独设置端口:
“export JMX_PORT=${JMX_PORT:-9998}”
在$KAFKA_HOME/bin/zookeeper-server-start.sh
文件的最后一行之前插入一行。“export JMX_PORT=${JMX_PORT:-9999}”
在$KAFKA_HOME/bin/kafka-server-start.sh
文件的最后一行之前插入一行。如果您通过 systemd 运行:
systemctl daemon-reload
systemctl restart kafka
echo 'beans' | java -jar jmxterm-1.0-alpha-4-uber.jar -l localhost:9989 -n 2>&1
您必须设置'JMX_PORT'变量,或将以下行添加到bin/kafka-server-start.sh.
export JMX_PORT=${JMX_PORT:-9999}
Run Code Online (Sandbox Code Playgroud)
那么您将能够连接到Kafka JMX指标.我使用jconsole工具和'localhost:9999'地址.
使用kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
该AllTopics
前缀在旧版本中使用。您可以使用指定主题kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,topic=<topic-name>
源代码:http ://grokbase.com/t/kafka/users/164ksnhff0/enable-jmx-on-kafka-brokers
归档时间: |
|
查看次数: |
42452 次 |
最近记录: |