在 Debian 系统上检查 Kafka 是否正常运行,一般可以从 进程、端口、日志、Kafka 自带工具 几个方面入手。下面按常用顺序给你一个完整检查清单。
ps 查看ps aux | grep kafka
正常情况会看到类似:
java ... kafka.Kafka ...
如果什么都没有,说明 Kafka 没启动。
systemctl(如果是 systemd 管理)如果你是用 systemd 安装的:
systemctl status kafka
或
systemctl status kafka-server
✅ 正常运行应显示 active (running)
启动 / 停止 / 重启:
sudo systemctl start kafka
sudo systemctl stop kafka
sudo systemctl restart kafka
Kafka 默认使用 9092 端口。
ss -lntp | grep 9092
或
netstat -lntp | grep 9092
✅ 看到 LISTEN 说明 Kafka 正在监听端口。
iptables -L -n
或(ufw):
ufw status
确保 9092 没有被拦截。
Kafka 日志位置取决于安装方式。
/opt/kafka/logs/
或
/var/log/kafka/
查看最新日志:
tail -f /opt/kafka/logs/server.log
✅ 正常日志示例:
[KafkaServer id=0] started
❌ 常见错误:
Address already in use(端口被占用)java.net.UnknownHostException(hostname 配置问题)Broker id already exists(Zookeeper 残留)Kafka 2.x 及以前版本依赖 Zookeeper
ps aux | grep zookeeper
或
systemctl status zookeeper
ss -lntp | grep 2181
进入 Kafka 目录(示例):
cd /opt/kafka
bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
✅ 正常会返回 Kafka 版本信息。
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
bin/kafka-topics.sh --bootstrap-server localhost:9092 \
--create --topic test-topic --partitions 1 --replication-factor 1
生产者:
bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic
消费者(新终端):
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic test-topic --from-beginning
✅ 能收发消息说明 Kafka 完全正常。
Kafka 配置:
/opt/kafka/config/server.properties
重点检查:
broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
⚠️ 如果 Kafka 在远程访问,需要:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
ps aux | grep kafka
ss -lntp | grep 9092
tail -f /opt/kafka/logs/server.log
bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
如果你愿意,可以告诉我:
我可以帮你精准定位问题 ✅