乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 学习路径
  • 第1章 消息队列与 Kafka 概述

    • 章节导读
    • 消息队列基础
    • Kafka 概述
    • Kafka 为什么快
  • 第2章 快速上手:单机环境搭建

    • 章节导读
    • 环境准备与安装
    • 快速启动
    • Topic 管理
  • 第3章 核心概念:主题、分区与日志

    • 章节导读
    • Topic
    • Partition
    • Offset
    • Segment 与存储结构
  • 第4章 生产者详解

    • 章节导读
    • Producer 概述
    • Producer 发送机制
    • Producer 分区策略
    • Producer 幂等与事务
    • Producer 配置
  • 第5章 消费者与消费组

    • 章节导读
    • Consumer 概述
    • Consumer Group 消费组
    • Consumer 分区分配策略
    • Consumer Offset 提交
    • Consumer 多线程
    • Consumer 配置
  • 第6章 Broker 与控制器

    • 章节导读
    • Broker 概述
    • Broker 配置
    • Controller
    • KRaft 共识协议
  • 第7章 副本与数据可靠性

    • 章节导读
    • 副本机制
    • ISR 与副本同步
    • Leader 选举
    • ACK 与一致性保证
    • 高水位与 Leader Epoch
  • 第8章 存储与性能优化

    • 章节导读
    • 存储架构
    • 日志清理与压缩
    • Page Cache 与零拷贝
    • Producer 性能优化
    • Consumer 性能优化
    • Broker 性能优化
  • 第9章 生产环境运维与监控

    • 章节导读
    • Topic 管理
    • Kafka 运维工具
    • 监控
    • 常见故障排查
  • 第10章 Kafka生态与面试考点

    • 章节导读
    • Kafka 生态全景
    • 面试高频 30 题

监控

定义与作用

Kafka 监控回答四个核心问题:集群健康吗?生产者正常吗?消费者追上了吗?磁盘还够吗? Kafka 通过 JMX(Java Management Extensions)暴露了数百个指标,本节聚焦于生产环境最关键的那 20 个。

核心原理

监控四象限

关键指标速查

类别JMX Metric告警阈值含义
可靠性UnderReplicatedPartitions> 0有分区副本不足
可靠性OfflinePartitionsCount> 0有分区无 Leader(不可读写)
可靠性ActiveControllerCount≠ 1Controller 异常(0:无,2+:脑裂)
吞吐BytesInPerSec相比基线下降 50%写入吞吐骤降
吞吐BytesOutPerSec相比基线下降 50%读取吞吐骤降
延迟TotalTimeMs P99> 100ms请求延迟升高
延迟RequestQueueSize> 1000请求积压
消费RecordsLagMax> 100000消费严重滞后
磁盘磁盘使用率> 80%磁盘即将写满
GCjvm.gc.time> 500ms/minGC 频率过高

完整示例

示例一:JMX 指标采集

# 启动 Kafka 时开启 JMX
export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=9999 \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false"

bin/kafka-server-start.sh config/kraft/server.properties

# 用 JConsole 连接查看
jconsole localhost:9999

示例二:命令行动态监控

# 消费组 Lag 检查(建议加入 Cron)
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
  --group order-processor --describe | awk '{if ($6 > 10000) print "CRITICAL: " $2 " LAG=" $6}'

# 未完全同步的分区
bin/kafka-topics.sh --describe --under-replicated-partitions \
  --bootstrap-server localhost:9092

# Broker 日志检查
grep -i "error\|warn" /opt/kafka/logs/server.log | tail -20

易错场景

易错 1:只看平均值不看 P99

场景:监控仪表盘显示 TotalTimeMs 平均 5ms,看起来正常。

事实:P99 可能是 500ms。长尾延迟才是用户体验的真实反映。

正确做法:监控 P50、P99、P999 三个分位数。

易错 2:忽视 UnderReplicatedPartitions 的瞬时尖峰

场景:滚动重启一个 Broker,UnderReplicatedPartitions 短暂 > 0 但不告警。

事实:滚动重启会导致大量分区暂缺副本,这是正常行为。但如果在非计划内(没有运维操作)时出现 → 真正的故障。

正确做法:告警时区分"瞬时尖峰"和"持续异常"。持续超过 5 分钟的 UnderReplicatedPartitions > 0 才告警。

面试高频考点

Q:如何判断 Kafka 集群是否"健康"?核心看哪 5 个指标?

A:

  1. UnderReplicatedPartitions — 值为 0:所有分区都有足够副本
  2. ActiveControllerCount — 值为 1:Controller 正常工作
  3. OfflinePartitionsCount — 值为 0:所有分区都可读写
  4. Consumer Group Lag — 不超过业务阈值:消费者不堆积
  5. 磁盘使用率 — < 80%:不会因磁盘满停机

这 5 个指标覆盖了可用性、可靠性、消费健康和资源健康四个维度。任何一项异常都需要立即响应。

上一页
Kafka 运维工具
下一页
常见故障排查