赞
踩
kafka开启JMX的2种方式:
1. 启动kafka时增加JMX_PORT=9988,即JMX_PORT=9988 bin/kafka-server-start.sh -daemon config/server.properties
2. 修改kafka-run-class.sh
脚本,第一行增加JMX_PORT=9988
即可。
事实上这两种配置方式背后的原理是一样的,我们看一下kafka的启动脚本kafka-server-start.sh
的最后一行exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
,实际上就是调用kafka-run-class.sh
脚本,其中有一段这样的内容:
# JMX port to use
if [ $JMX_PORT ]; then
KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
fi
所以,本质是给参数JMX_PORT赋值,第二种方式在脚本的第一行增加JMX_PORT=9988
,$JMX_PORT
就能取到值;而第一种方式有点逼格,本质是设置环境变量然后执行启动脚本,类似下面这种方式给JMX_PORT赋值:
[afei@kafka]$ export JMX_PORT=9988
[afei@kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
jmx所有相关参数都在脚本kafka-run-class.sh
中,如下所示:
# JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; then
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.0.55.229 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
fi
# JMX port to use
if [
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。