一、Kafka Linux版故障排查步骤
systemctl status kafka命令确认Kafka服务是否运行。若未运行,通过systemctl start kafka启动服务。/var/log/kafka/server.log(或/path/to/kafka/logs/server.log),使用tail -n 500 /var/log/kafka/server.log查看最新错误信息,定位故障根源。systemctl status zookeeper检查Zookeeper状态。若未启动,使用systemctl start zookeeper启动;若已启动,使用bin/zkServer.sh status确认其健康状态。server.properties(通常位于/etc/kafka/或Kafka安装目录的config/下),重点核查以下参数:
broker.id:集群内唯一标识;listeners:Broker监听地址(如PLAINTEXT://0.0.0.0:9092);advertised.listeners:客户端连接的Broker地址(需与集群网络匹配);zookeeper.connect:Zookeeper集群地址(如localhost:2181);log.dirs:数据存储目录(如/var/lib/kafka/logs)。ping <broker_ip>检查Broker间网络连通性,使用telnet <broker_ip> <port>(如telnet 192.168.1.100 9092)验证端口是否可达,确保集群内Broker能正常通信。df -h查看磁盘空间(确保log.dirs所在分区有足够空间,建议预留20%以上);使用top或htop查看CPU、内存使用率(避免资源耗尽导致服务崩溃)。kafka-topics.sh --describe --topic <topic_name> --bootstrap-server <broker_ip>:9092检查分区副本状态,修复ISR(In-Sync Replicas)异常。netstat -tuln | grep <port>(如netstat -tuln | grep 9092)查看占用进程,通过kill -9 <pid>终止冲突进程,或修改server.properties中的listeners配置更换端口。server.properties路径正确(尤其在KRaft模式下),避免因路径错误导致服务无法启动。java -version检查Java版本,设置JAVA_HOME环境变量。二、Kafka Linux版数据恢复方法
systemctl stop kafka;kafka-dump-log.sh脚本导出日志目录数据(如kafka-dump-log.sh /var/lib/kafka/logs > kafka_backup.log);cp -r /path/to/backup/* /var/lib/kafka/logs/);systemctl start kafka。confluent-kafka-backup工具:sudo apt-get install confluent-kafka-backup(或通过Confluent平台获取);kafka-backup --bootstrap-server localhost:9092 --backup-dir /path/to/backup;kafka-backup --bootstrap-server localhost:9092 --restore-dir /path/to/backup --to-dir /var/lib/kafka/logs/。/etc/kafka/)和Zookeeper数据(/var/lib/zookeeper/),防止数据覆盖。