在 Debian 系统上备份 Kafka,需要从 Kafka 数据(消息)、配置、依赖组件(如 ZooKeeper 或 KRaft) 三个层面来考虑。下面按生产环境常用做法给你一个完整备份方案。
先确认你使用的是:
ps -ef | grep -E 'kafka|zookeeper'
通常在:
/etc/kafka/
或
/opt/kafka/config/
备份:
tar czf kafka-config-$(date +%F).tar.gz /etc/kafka
常见重要文件:
server.propertiesproducer.propertiesconsumer.propertieszookeeper.properties(如果用 ZK)kraft/server.properties(KRaft)查看 server.properties:
log.dirs=/var/lib/kafka/data
强烈建议停止 Kafka 再备份,否则可能数据不一致。
systemctl stop kafka
(如果是 KRaft)
systemctl stop kafka
tar czf kafka-data-$(date +%F).tar.gz /var/lib/kafka/data
⚠️ 注意:
df -h
systemctl stop zookeeper
查看 zookeeper.properties:
dataDir=/var/lib/zookeeper
备份:
tar czf zookeeper-data-$(date +%F).tar.gz /var/lib/zookeeper
KRaft 模式下,Kafka 自己保存元数据。
meta.properties__cluster_metadata 目录tar czf kafka-kraft-backup-$(date +%F).tar.gz \
/var/lib/kafka/data \
/opt/kafka/config
如果你需要恢复消费进度:
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--all-groups \
--describe > kafka-consumer-offsets-$(date +%F).txt
#!/bin/bash
BACKUP_DIR=/data/backup/kafka
mkdir -p $BACKUP_DIR
systemctl stop kafka
tar czf $BACKUP_DIR/kafka-data-$(date +%F).tar.gz /var/lib/kafka/data
systemctl start kafka
加入 cron:
crontab -e
0 2 * * * /opt/scripts/backup_kafka.sh
tar xzf kafka-data-2026-01-21.tar.gz -C /
✅ 不要只备份数据,不备份配置
✅ 生产环境建议定期全量 + 增量(rsync)
✅ Kafka 本身不适合做长期备份,建议用 MirrorMaker / 外部存储
✅ 重要数据建议开启副本(replication)
你可以告诉我:
我可以给你 更精确的备份脚本或方案。