检查 Kafka 状态通常分为 Kafka 自身状态、Broker 状态、Topic / 分区状态、消费者状态 等几个层面。下面按常用方式 + 实战命令给你一个完整清单(以 Kafka 2.x / 3.x 为例)。
ps -ef | grep kafka
或
jps | grep Kafka
✅ 看到 Kafka 进程说明服务已启动。
kafka-broker-api-versions.sh --bootstrap-server localhost:9092
或从 ZooKeeper(老版本):
zookeeper-shell.sh localhost:2181 ls /brokers/ids
✅ 返回 broker id 列表(如 [0,1,2])说明 Broker 正常。
kafka-topics.sh --bootstrap-server localhost:9092 --list
kafka-topics.sh --bootstrap-server localhost:9092 \
--describe --topic your_topic
✅ 关注:
示例:
Partition: 0 Leader: 1 Replicas: 1,2 Isr: 1,2
⚠️ 如果 ISR < Replicas → 有副本不同步
kafka-broker-api-versions.sh --bootstrap-server localhost:9092 \
| grep controller
或 ZooKeeper:
zookeeper-shell.sh localhost:2181 get /controller
✅ Controller 不存在 = Kafka 集群异常
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--describe --group your_group
重点关注:
LAG ≠ 0 → 消息堆积CURRENT-OFFSETLOG-END-OFFSETkafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic test
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test --from-beginning
✅ 能收发说明 Kafka 正常
tail -f /opt/kafka/logs/server.log
常见错误:
Broker may not be availableLEADER_NOT_AVAILABLEOutOfMemoryError# CPU / 内存
top
# 磁盘
df -h
# 磁盘 IO
iostat -x 1
⚠️ Kafka 磁盘满了 = 直接不可用
| 检查项 | 命令 |
|---|---|
| 进程 | jps |
| Broker | kafka-broker-api-versions.sh |
| Topic | kafka-topics.sh --describe |
| 消费者堆积 | kafka-consumer-groups.sh |
| 收发测试 | console-producer / consumer |
| 日志 | server.log |
| 现象 | 可能原因 |
|---|---|
| 无法连接 | broker 没启动 / 端口错误 |
| ISR 不全 | 网络 / 磁盘慢 |
| LAG 一直增长 | 消费端异常 |
| topic 无法写入 | leader 不存在 |
| 磁盘满 | 未清理日志 |
如果你愿意,可以告诉我:
我可以给你更精准的检查方案。