温馨提示×

怎样备份debian kafka

小樊
37
2026-10-09 19:52:41
栏目: 智能运维

在 Debian 上“备份 Kafka”通常分 三块:

  1. Kafka 数据本身(topic 消息)
  2. Kafka 元数据(topic 配置、ACL、消费位移等)
  3. Kafka 配置文件与系统环境

下面按“最常用、最稳妥”的方式讲。


一、备份 Kafka 数据目录(核心)

Kafka 的消息默认存在:

/var/lib/kafka/data
# 或你 server.properties 里配置的
log.dirs=/data/kafka-logs

1️⃣ 停止 Kafka(推荐)

systemctl stop kafka

2️⃣ 备份数据目录

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 元数据(非常重要)

1️⃣ 导出 topic 配置

kafka-topics.sh --bootstrap-server localhost:9092 \
  --describe > kafka-topics.txt

2️⃣ 导出 topic 列表

kafka-topics.sh --bootstrap-server localhost:9092 \
  --list > kafka-topic-list.txt

3️⃣ 导出 ACL(如果开了鉴权)

kafka-acls.sh --bootstrap-server localhost:9092 --list > kafka-acls.txt

4️⃣ 导出消费位移(可选)

kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
  --describe --all-groups > kafka-consumer-groups.txt

三、备份 Kafka 配置文件

/etc/kafka/

常见文件:

  • server.properties
  • producer.properties
  • consumer.properties
  • zookeeper.properties(如果用 ZK)
tar czf kafka-config-$(date +%F).tar.gz /etc/kafka

四、如果你用 Kafka + ZooKeeper

备份 ZooKeeper 数据

/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

六、恢复 Kafka(简述)

  1. 停止 Kafka
  2. 解压数据到 log.dirs
  3. 还原 /etc/kafka
  4. 启动 Kafka
  5. 用导出的 topic 配置重建(如有必要)

七、更专业的方案(生产环境)

  • MirrorMaker 2:跨集群实时备份
  • 存储快照(LVM / cloud snapshot)
  • Confluent Control Center / Backup tools

如果你能告诉我:

  • Kafka 版本
  • 是否用 ZooKeeper / KRaft
  • 单机还是集群

我可以给你 完全贴合你环境的备份方案。

0 踩