在 Debian 上备份 Kafka,通常分为 Kafka 数据备份 和 Kafka 配置/元数据备份 两部分。下面按常见生产环境做法说明。
Kafka 的数据默认存放在 log.dirs 指定的目录中(通常是 /var/lib/kafka/data 或 /tmp/kafka-logs)。
grep log.dirs /etc/kafka/server.properties
示例:
log.dirs=/var/lib/kafka/data
避免数据不一致:
systemctl stop kafka
tar -czvf kafka-data-$(date +%F).tar.gz /var/lib/kafka/data
或者同步到远程:
rsync -avz /var/lib/kafka/data/ user@backup:/backup/kafka/
✅ 这是最完整的数据备份方式
systemctl start kafka
tar -czvf kafka-config-$(date +%F).tar.gz /etc/kafka
常见重要文件:
/etc/kafka/server.properties/etc/kafka/zookeeper.properties/etc/kafka/producer.properties/etc/kafka/consumer.propertiesKafka 旧版本依赖 ZooKeeper 存储元数据。
grep dataDir /etc/kafka/zookeeper.properties
示例:
dataDir=/var/lib/zookeeper
systemctl stop zookeeper
tar -czvf zookeeper-data-$(date +%F).tar.gz /var/lib/zookeeper
systemctl start zookeeper
如果你使用的是 Kafka 3.x+ KRaft 模式:
grep metadata.log.dir /etc/kafka/server.properties
备份目录:
tar -czvf kafka-metadata-$(date +%F).tar.gz /var/lib/kafka/metadata
kafka-dump-logkafka-dump-log.sh --files /var/lib/kafka/data/topic-0/*.log
⚠️ 注意:
✅ 定期全量备份
✅ 远程存储(NFS / 对象存储)
✅ 结合 Kafka 多副本机制(不是备份,但很重要)
✅ 使用 Ansible / 脚本自动化
如果你愿意,可以告诉我:
我可以给你一套 针对你环境的完整备份脚本。