在 Debian 上“备份 Kafka”通常分 三块:
下面按“最常用、最稳妥”的方式讲。
Kafka 的消息默认存在:
/var/lib/kafka/data
# 或你 server.properties 里配置的
log.dirs=/data/kafka-logs
systemctl stop kafka
tar czf kafka-data-$(date +%F).tar.gz /var/lib/kafka/data
或 rsync 到备份机:
rsync -avz /var/lib/kafka/data/ backup@backupserver:/backup/kafka/
⚠️ 不停止 Kafka 也能备份,但可能不一致(除非用存储快照)
kafka-topics.sh --bootstrap-server localhost:9092 \
--describe > kafka-topics.txt
kafka-topics.sh --bootstrap-server localhost:9092 \
--list > kafka-topic-list.txt
kafka-acls.sh --bootstrap-server localhost:9092 --list > kafka-acls.txt
kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--describe --all-groups > kafka-consumer-groups.txt
/etc/kafka/
常见文件:
server.propertiesproducer.propertiesconsumer.propertieszookeeper.properties(如果用 ZK)tar czf kafka-config-$(date +%F).tar.gz /etc/kafka
/var/lib/zookeeper
停止后备份:
systemctl stop zookeeper
tar czf zk-data.tar.gz /var/lib/zookeeper
Kafka 3.x 开始可用 KRaft 模式,就不需要 ZooKeeper 了
#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR=/backup/kafka
systemctl stop kafka
tar czf $BACKUP_DIR/kafka-data-$DATE.tar.gz /var/lib/kafka/data
tar czf $BACKUP_DIR/kafka-config-$DATE.tar.gz /etc/kafka
systemctl start kafka
加 crontab:
0 3 * * * /root/backup-kafka.sh
log.dirs/etc/kafka如果你能告诉我:
我可以给你 完全贴合你环境的备份方案。