kafka-eagle 使用配置及远程jmx端口设置遇到的问题

关于安装kafka-eagle网上已经有好多资源,这里就不再赘述

安装过程很简单几乎没遇到问题,就是jmx配置遇到了些问题。下面就直接说

kafka-server-start.sh 配置 export JMX_PORT="9999"

只有这个是大部分博主直接在文档里写明的。

这就会在配置多主机kafka集群监控的时候导致如下问题。

create has error,msg is java.rmi.ConnectException cannot be cast to javax.management.remote.JMXConnector

经过自己编译调试打印日志发现

Connection refused to host: 127.0.0.1; nested exception is

总会报这个错。

经过调查发现jmx远程调用会返回一个主机以host_name映射的ip

对jmx不了解的后果

解决方法:

1.修改/etc/hosts

127.0.0.1 hostname

改为

设备ip hostname

但这种方法不太好,改的是整个设备的配置

2.修改kafka-server-start.sh

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/usr/local/kafka2.5/config/kafka_server_jaas.conf -  kafka.Kafka "$@"

改为

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/usr/local/kafka2.5/config/kafka_server_jaas.conf -Djava.rmi.server.hostname=设备的ip   kafka.Ka        fka "$@"

这样直接指定ip

防火墙问题

如果通过单独开放9999端口也会导致出现

Connection refused to host: 设备ip

这样的问题

这样的问题通常是防火墙问题,后来发现jmx会用到3个接口

一个是经常自己直接指定的JMX_PORT="9999"

还有两个分别是:

RMI端口(默认随机),实际通信用的端口

本地服务端口(随机),用于本地jstat、jconsole连接用,本地使用,我们不用理会。

RMI端口也可以自己指定 像指定ip一样:

在kafka-server-start.sh中增加  -Dcom.sun.management.jmxremote.rmi.port=9998

然后再在防火墙中增加开放端口9998

感谢博主的分享:https://blog.csdn.net/caidongxuan/article/details/105247609

你可能感兴趣的:(kafka,jmx,kafka)