本文介绍如何部署和配置Kafka JMX Agent。
使用限制
目前支持在容器服务类型的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
若您是容器服务类型的Prometheus实例,您还需要配置containerPort,以便可观测监控 Prometheus 版能顺利抓取到Kafka JMX Agent的数据。若您是ECS类型的Prometheus实例,请跳过此步骤。
- 登录容器服务管理控制台。
- 在控制台左侧导航栏,单击集群。
- 在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理左侧导航栏中,选择kafka页签的端口区域配置端口名称、容器端口号和端口协议。 。然后单击工作负载名称,在
- 端口名称:Kafka JMX Agent端口名,例如app1-kafka-jmx。
- 容器端口:为在步骤一:部署Kafka JMX Agent中定义的JMX监听端口。
- 端口协议:选择TCP协议。
步骤三:配置Kafka Pod或ECS的标签
可观测监控 Prometheus 版可以通过识别Pod或ECS的标签实现服务发现(Service Discovery),因此您需要定义一个标签,以便可观测监控 Prometheus 版能够识别到。如果您的业务中已经存在类似的标签,则可以跳过此步骤。
容器服务类型的Prometheus实例配置标签
在Kafka Producer、Broker、Consumer的Pod上配置标签{自定义标签}:{自定义标签值}
,例如:arms-kafka-exporter:my-kafka1
,具体操作如下:
- 登录容器服务管理控制台。
- 在控制台左侧导航栏,单击集群。
- 在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理左侧导航栏中,选择编辑,然后在弹出的对话框中新增标签,并单击更新。 ,并单击工作负载名称,在容器组详情页面,单击右上角的
ECS类型的Prometheus实例配置标签
在Kafka Producer、Broker、Consumer的ECS上配置标签
{自定义标签}:{自定义标签值}
,例如:arms-kafka-exporter:my-kafka1
,ECS创建标签的具体操作,请参见创建或绑定标签。后续操作
Kafka JMX-Agent配置完成后,您可以在可观测监控 Prometheus 版控制台完成接入配置并查看其监控数据。具体操作,请参见如何使用观测Kafka。