一、Broker核心指标(Linux下通过JMX/工具监控的关键Broker状态)
unclean.leader.election.enable=false并监控该值是否为0。二、机器层面指标(Linux系统资源使用情况)
top、htop或/proc/stat监控Kafka进程(java进程)的CPU占用。过高可能因消息堆积、压缩操作或GC频繁导致,需优化JVM参数或增加Broker节点。free -m、top查看系统内存及Kafka进程的%MEM占用。Kafka依赖堆外内存(PageCache),需合理配置JVM堆内存(避免过大导致GC停顿),并通过vmstat监控swap使用(避免内存溢出)。iostat -x 1监控磁盘的read/write速率、await(IO等待时间)、%util(磁盘利用率)。Kafka是磁盘顺序IO密集型应用,%util长期超过70%需升级磁盘(如SSD)或优化分区分布。netstat -antp、ss -s或iftop监控网卡的RX/TX速率(接收/发送流量)。网络带宽瓶颈会导致吞吐量下降,需检查网卡配置(如升级万兆网卡)或优化分区跨Broker分布。三、JVM指标(Kafka运行环境监控)
MemHeapUsed(已用堆内存)与MemHeapMax(最大堆内存)的比例。建议设置为70%-80%(避免频繁Full GC),可通过jstat -gc <pid>查看GC次数和时间。ParNew)和Old GC(CMS/G1)的频率及耗时。频繁Full GC会导致Broker停顿,需调整JVM堆大小(-Xmx/-Xms)或更换GC策略(如G1GC)。四、生产者核心指标(通过JMX或Kafka Exporter监控)
MessagesInPerSec)或字节数(BytesInPerSec)。反映生产者写入负载,结合batch.size(批量大小)和linger.ms(等待时间)参数优化吞吐量。record-send-rate/request-rate)。若成功率低,需检查网络连接、Broker可用性或acks配置(如acks=all会增加失败概率)。record-error-rate)。非0值需排查生产者配置(如retries重试次数)、Broker负载或网络问题。五、消费者核心指标(通过Kafka Exporter/Burrow监控)
records-consumed-rate)或字节数(bytes-consumed-rate)。反映消费者处理能力,若低于生产速度,需扩展消费者实例或优化消费逻辑。auto.offset.reset)、分区分配(Consumer Group是否均衡)或业务处理逻辑。consumer-lag)。反映消息积压情况,若Lag持续增长,需增加消费者实例或提升消费处理速度。六、其他重要监控指标
kafka-topics.sh --describe查看分区Leader分布(应均匀分布在各Broker)、ISR集合大小(应满足min.insync.replicas配置,确保数据可靠性)。Produce-TotalTimeMs/Fetch-TotalTimeMs)。延迟过高可能因Broker负载高、网络延迟或磁盘IO慢导致,需针对性优化。Produce-QueueTimeMs/Fetch-QueueTimeMs)。过长说明Broker处理能力不足,需增加Broker或分区。