1. IllegalArgumentException: port out of range

[2021-12-03 15:24:01] KafkaServiceImpl.Thread-49 - ERROR - Telnet [localhost:-1] has error, msg is 
 java.lang.IllegalArgumentException: port out of range:-1
        at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143)
        at java.net.InetSocketAddress.<init>(InetSocketAddress.java:224)
        at org.smartloli.kafka.eagle.common.util.NetUtils.telnet(NetUtils.java:45)
        at org.smartloli.kafka.eagle.core.factory.KafkaServiceImpl.getAllBrokersInfo(KafkaServiceImpl.java:274)
        at org.smartloli.kafka.eagle.web.quartz.TopicRankSubTask$TopicThroughputThread.throughputByteOut(TopicRankSubTask.java:197)
        at org.smartloli.kafka.eagle.web.quartz.TopicRankSubTask$TopicThroughputThread.throughput(TopicRankSubTask.java:111)
        at org.smartloli.kafka.eagle.web.quartz.TopicRankSubTask$TopicThroughputThread.run(TopicRankSubTask.java:103) ...

异常类型很奇怪,找到官网github地址clone下来,发现不是kafka-eagle的问题,提示错误原因是读取kafka的JMX端口错误,想起来kafka的jmx没有开启,重新配置kafka。

去kafka的bin目录:
cd /kafka/bin

修改kafka-run-class.sh脚本文件,添加JMX相关参数:
1. 首行添加JMX_PORT=6666,绑定端口
2. 查找KAFKA_JMX_OPTS,绑定ip,添加-Djava.rmi.server.hostname=localhost

 注意:配置ip的时候,要注意这里配置的host,要跟kafka-eaglesystem-config.propertiescluster1.zk.listcluster1.efak.jmx.uri的host一致,否者会有第二个问题出现。

2. JMX service url[localhost:9988] create has error

 ERROR - JMX service url[localhost:9988] create has error,msg is 
 java.lang.NullPointerException

这个异常就很清晰了,大概率是JMX配置的问题。(这里显示9988是因为之前是9988,我猜想是端口占用,后期换成6666,可以直接为全文的端口都是一样的)

1> 首先通过上面的Kafka的JMX配置,检查下JMX的配置情况。

        a. (云服务端口可以访问)使用本地jconsole连接JMX检测情况。        ​​​​​

   b. 本地kafka测试:(不成功,也无所谓,只要efka的日志没有报错,也能证明成功

./kafka-run-class.sh kafka.tools.JmxTool --object-name kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec --jmx-url service:jmx:rmi:///jndi/rmi://localhost:6666/jmxrmi --date-format "YYYY-MM-dd HH:mm:ss" --attributes FifteenMinuteRate --reporting-interval 5000

 2> 贴张配置图(写完1忘记2了,我丢 -.-)

 上图是EFAK配置文件主要需要修改的地方。(我是单个节点的kafka,只怪太穷-.-,几台服务器,随便搞点中间件就高了)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐