1. 使用Kafka Exporter+Prometheus+Grafana组合监控
这是Ubuntu环境下监控Kafka系统资源的常用方案,可实现指标采集、存储、可视化及告警的全链路覆盖。
KAFKA_BROKERS: "localhost:9092")和Kafka版本(如KAFKA_VERSION: "3.6.0"),确保Exporter能正确采集Broker指标。prometheus.yml配置文件中添加Kafka Exporter的job,设置metrics_path(默认/metrics)、scrape_interval(如15s,控制指标采集频率)和目标地址(如- targets: ['kafka-exporter:9308'])。Prometheus会定期从Exporter拉取Kafka的系统资源指标(如CPU、内存、磁盘IO)及Kafka自身指标(如消息积压、ISR副本数)。node_memory_MemAvailable_bytes < 1073741824表示内存不足),触发邮件、Slack等通知。2. 利用JMX监控Kafka系统资源
Kafka通过JMX(Java Management Extensions)暴露了大量系统资源指标,可通过JMX客户端直接查看。
kafka-server-start.sh),添加JMX参数:export JMX_PORT=9999
export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$JMX_PORT -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
localhost:9999连接到Kafka Broker。在客户端中,可查看系统资源指标(如java.lang:type=OperatingSystem下的ProcessCpuLoad(CPU利用率)、HeapMemoryUsage(堆内存使用)、ThreadCount(线程数))及Kafka特定指标(如kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec(消息吞吐量))。3. 使用Ubuntu系统自带工具监控基础资源
通过Ubuntu系统工具可监控Kafka所在服务器的基础资源使用情况,辅助定位性能瓶颈。
top -p $(pgrep -d',' -f kafka.Kafka)过滤出Kafka进程的资源消耗。/var/lib/kafka/data)的剩余空间,避免因磁盘满导致Broker宕机。%util表示磁盘利用率,await表示平均IO等待时间),识别IO瓶颈。4. 第三方监控工具补充
除上述方案外,还可使用以下工具扩展监控能力:
docker run -p 9000:9000 -e KAFKA_BROKERCONNECT=localhost:9092 kafdrop/kafdrop),可查看Topic详情、消费者组状态及系统资源占用(如Broker CPU、内存)。burrow.toml配置Kafka地址,可实时监控消费者延迟情况,及时发现消费滞后问题。