Apache Kafka 3.3.1兼容Cruise Control吗?升级后无指标采集求助
Cruise Control 与 Apache Kafka 3.3.1 兼容性及升级后指标采集问题解决
兼容性说明
Cruise Control 官方支持最近3个稳定版 Kafka,Kafka 3.3.1 属于该覆盖范围。只要你使用的 Cruise Control 版本是 0.7.0 及以上,就能完全兼容 Kafka 3.3.1。如果你的 Cruise Control 版本低于这个号,建议先升级 Cruise Control,避免 API 不匹配引发的各类问题。
升级后指标采集异常(0 broker/0 指标)排查步骤
1. 核对 Cruise Control 核心配置
- 确认
kafka.broker.list配置的是 Kafka 3.3.1 集群的所有 broker 地址,无写错或遗漏情况 - 检查
metric.reporter.bootstrap.servers是否指向正确的集群 bootstrap 地址 - 验证默认指标 topic
__CruiseControlMetrics存在且 broker 拥有写入权限:kafka-topics.sh --describe --topic __CruiseControlMetrics --bootstrap-server <你的broker地址>:9092
2. 检查 Kafka Broker 的 JMX 配置
Kafka 3.3.1 对 JMX 默认配置有微调,需确保 broker 开启了 JMX 且 Cruise Control 可正常访问:
- 查看 broker 启动脚本,确认包含如下类似配置:
export JMX_PORT=9999 export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<broker公网/内网IP>" - 在 Cruise Control 所在机器上执行
telnet <broker-ip> 9999测试连通性,排除防火墙/安全组拦截问题
3. 确认 Metrics Reporter 配置与版本匹配
- 检查 Kafka broker 的
server.properties,确保配置了正确的 Cruise Control Metrics Reporter:metric.reporters=com.linkedin.kafka.cruisecontrol.metricsreporter.CruiseControlMetricsReporter cruise.control.metrics.reporter.bootstrap.servers=<你的bootstrap地址> - 升级 Kafka 后,务必将 Cruise Control 对应版本的 Metrics Reporter jar 包放到 Kafka 的
libs目录下,旧版本 jar 包与 3.3.1 不兼容会直接导致指标上报失败
4. 通过日志定位具体问题
- 查看 Cruise Control 的
logs/cruise-control.log,搜索No brokers found、Failed to collect metrics这类关键词,定位错误根源 - 查看 Kafka broker 的
logs/server.log,搜索CruiseControlMetricsReporter,确认是否存在指标上报失败的日志记录
额外提示
如果你的 Kafka 3.3.1 采用了 KRaft 模式,需在 Cruise Control 配置中设置 kafka.cluster.id 为集群的 cluster ID,否则无法正常识别集群。另外,升级完成后建议重启所有 Cruise Control 实例和 Kafka broker,确保配置完全生效。
内容的提问来源于stack exchange,提问作者Vinay Kumar
相关产品推荐
相关产品推荐

