本文介紹如何部署和配置Kafka JMX Agent。
使用限制
目前支援在Container Service類型的Prometheus執行個體和ECS類型的Prometheus執行個體中接入Kafka JMX Agent。
步驟一:部署Kafka JMX Agent
下載kafka JMX-Agent包到Kafka所在的Pod或ECS內。
在Kafka Producer、Broker、Consumer的JVM啟動參數中,增加參數
-javaagent:/{jmx-agent儲存目錄}/kafka-jmx_prometheus_javaagent-1.18.1.jar={jmx監聽連接埠},具體參數樣本如下圖。儲存目錄:需要替換為您實際的儲存目錄。
jmx監聽連接埠:需要替換為您實際的JMX監聽連接埠。

重新啟動Kafka Producer、Broker、Consumer。
確認Kafka Producer、Broker、Consumer的Kafka JMX Agent是否正常工作。即在各Pod或ECS上,執行命令
curl localhost:{jmx監聽連接埠}/metrics,觀察是否有正常的Metric返回。如果有正常的Metric返回,說明Kafka Producer、Broker、Consumer的Kafka JMX Agent已正常工作。jmx監聽連接埠:需要替換為您實際的JMX監聽連接埠。

(可選)步驟二:配置containerPort
若您是Container Service類型的Prometheus執行個體,您還需要配置containerPort,以便可觀測監控 Prometheus 版能順利抓取到Kafka JMX Agent的資料。若您是ECS類型的Prometheus執行個體,請跳過此步驟。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊目標工作負載操作列的編輯,在編輯頁面,配置連接埠名稱、容器連接埠和連接埠協議,然後單擊更新。

名稱:Kafka JMX Agent連接埠名,例如app1-kafka-jmx。
容器連接埠:在步驟一:部署Kafka JMX Agent中定義的JMX監聽連接埠。
協議:選擇TCP協議。
步驟三:配置Kafka Pod或ECS的標籤
可觀測監控 Prometheus 版可以通過識別Pod或ECS的標籤實現服務發現(Service Discovery),因此您需要定義一個標籤,以便可觀測監控 Prometheus 版能夠識別到。如果您的業務中已經存在類似的標籤,則可以跳過此步驟。
Container Service類型的Prometheus執行個體配置標籤
在Kafka Producer、Broker、Consumer的Pod上配置標籤{自訂標籤}:{自訂標籤值},例如:arms-kafka-exporter:my-kafka1,具體操作如下:
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在容器組頁簽,單擊目標容器組操作列的編輯,然後新增標籤,編輯結束後單擊更新。

ECS類型的Prometheus執行個體配置標籤
在Kafka Producer、Broker、Consumer的ECS上配置標籤{自訂標籤}:{自訂標籤值},例如:arms-kafka-exporter:my-kafka1,ECS建立標籤的具體操作,請參見標籤。
後續操作
Kafka JMX-Agent配置完成後,您可以在可觀測監控 Prometheus 版控制台完成接入配置並查看其監控資料。具體操作,請參見如何使用Prometheus監控Kafka。