使用Kafka自带命令行工具
Kafka提供了多个命令行工具,可直接在Linux终端运行,快速获取集群基础状态:
kafka-topics.sh:查看主题详细信息(如分区数、副本因子、Leader节点),例如bin/kafka-topics.sh --bootstrap-server <broker-list> --describe --topic <topic-name>;kafka-consumer-groups.sh:监控消费者组状态(消费速率、偏移量提交情况、Lag值),例如bin/kafka-consumer-groups.sh --bootstrap-server <broker-list> --describe --group <group-name>;kafka-run-class.sh:运行性能测试工具(如ProducerPerformance、ConsumerPerformance),获取生产者和消费者的吞吐量、延迟等指标,例如bin/kafka-run-class.sh kafka.tools.ProducerPerformance --topic <topic-name> --num-records <记录数> --record-size <记录大小> --throughput <吞吐量> --producer-props bootstrap.servers=<broker-list>。基于JMX的监控
Kafka通过JMX暴露了大量关键指标(如吞吐量、延迟、磁盘I/O、网络连接数),可通过以下工具监控:
server.properties中配置jmx.port),实时查看指标;--override jmx.port=9093,并通过jmx_exporter_config.yaml定义指标采集规则。第三方监控工具组合
kafka_exporter或JMX Exporter),Grafana负责可视化。配置步骤:
prometheus.yml,添加Kafka抓取任务(如scrape_configs: - job_name: 'kafka' - static_configs: - targets: ['<broker-host>:<exporter-port>']);nohup ./kafka_exporter --kafka.server=<broker-host>:9092 --web.listen-address=:9308 &)。开源集群管理工具
--override jmx.port=9093)。system-config.properties文件(如Zookeeper地址、Kafka集群信息)。自定义监控脚本
通过Kafka Java客户端编写脚本,自定义采集和告警逻辑(如Shell脚本调用kafka-consumer-groups.sh获取Lag值,判断是否超过阈值后发送邮件告警;或Java程序使用KafkaConsumer API实时监控消费进度)。这种方式灵活,可根据业务需求定制监控项,但需要一定的开发成本。