眾所周知(反正不管你知不知道),kafka-maneger更名了,現在叫cmak!原因是什么呢?據不可靠小道信息說,原kafka-manager這個名字涉及到kafka商標使用問題,應該是被律師函警告了,所以就換名了~
1.下載地址:
https://github.com/yahoo/CMAK?
下載后,解壓后如上圖
注:本次下載最新版本包,之前的老版本下載后還需要自己編譯代碼然后再部署使用,新版不用,根本不用!
2.解壓縮后,將解壓包放到合適的位置,然后修開配置文件application.conf
修改如下, 紅框中的改成自己的集群地址就OK了,如果是本機部署,直接寫本機ip
注:kafka-manager.zkhosts后續會廢棄掉,可以注釋掉,只保留cmak.zkhosts配置
?3.啟動cmak
進入目錄cmak-3.0.0.6/bin下sh cmak
啟動成功
?
4.進入平臺
地址:http://172.30.19.168:9000/
5. 添加add clusters
參數添加:
然后保存就行了
保存完就可以看到下圖,紅框的內容,第一次部署是沒有紅框內容的,只有添加完clusters才會出現
6.愉快的使用
7.啟動日志報錯:Failed to get broker metrics for BrokerIdentity(0,localhost,-1,false,true,Map(PLAINTEXT -> 9092))
如果報錯會影響Mwtrics模塊沒數據
報錯信息:?
2024-07-02 19:38:12,373 - [ERROR] - from kafka.manager.actor.cluster.BrokerViewCacheActor in kafka-manager-system-akka.actor.default-dispatcher-8
Failed to get broker metrics for BrokerIdentity(0,localhost,-1,false,true,Map(PLAINTEXT -> 9092))
java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled!at scala.Predef$.require(Predef.scala:281)at kafka.manager.jmx.KafkaJMX$.doWithConnection(KafkaJMX.scala:39)at kafka.manager.actor.cluster.BrokerViewCacheActor.$anonfun$updateBrokerMetrics$3(BrokerViewCacheActor.scala:359)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)at scala.util.Success.$anonfun$map$1(Try.scala:255)at scala.util.Success.map(Try.scala:213)at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base/java.lang.Thread.run(Thread.java:834)2024-07-02 19:38:12,373 - [ERROR] - from kafka.manager.actor.cluster.BrokerViewCacheActor in kafka-manager-system-akka.actor.default-dispatcher-8
Failed to get broker topic segment metrics for BrokerIdentity(0,localhost,-1,false,true,Map(PLAINTEXT -> 9092))
java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled!at scala.Predef$.require(Predef.scala:281)at kafka.manager.jmx.KafkaJMX$.doWithConnection(KafkaJMX.scala:39)at kafka.manager.actor.cluster.BrokerViewCacheActor.$anonfun$updateBrokerTopicPartitionsSize$3(BrokerViewCacheActor.scala:383)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)at scala.util.Success.$anonfun$map$1(Try.scala:255)at scala.util.Success.map(Try.scala:213)at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
8.解決方案
在kafka-server-start.sh中開頭添加一行代碼,然后重啟kafka,報錯解決了
export JMX_PORT="9999"
kafka-server-start.sh 路徑:../kafka/3.7.0/libexec/bin
如果忘記kafka安裝路徑,可以通過以下方式:
1.通過whereis kafka-server-start 命令找到命令目錄
2.cd 路徑,如:cd /opt/homebrew/bin/
3.在/opt/homebrew/bin/目錄找到kafka-server-start
4.cd?../Cellar/kafka/3.7.0/bin/ 然后找到kafka-server-start
5.cat?kafka-server-start 查看命令的執行位置,我們會發現實際執行是:
/opt/homebrew/Cellar/kafka/3.7.0/libexec/bin/kafka-server-start.sh
6.vim?/opt/homebrew/Cellar/kafka/3.7.0/libexec/bin/kafka-server-start.sh 然后添加export JMX_PORT="9999"