温馨提示×

debian如何备份kafka

小樊
45
2026-10-12 17:35:32
栏目: 智能运维

在 Debian 系统上备份 Kafka 通常分为两类:元数据备份(ZooKeeper / KRaft) 和 数据备份(Topic 消息)。下面按常见场景说明。


一、备份 Kafka 数据目录(最直接)

Kafka 的消息本身存储在磁盘上,默认路径一般是:

/var/lib/kafka/data      # 或 /tmp/kafka-logs

1. 停止 Kafka(推荐)

systemctl stop kafka

2. 打包数据目录

tar czf kafka-backup-$(date +%F).tar.gz /var/lib/kafka/data

3. 备份到安全位置

cp kafka-backup-*.tar.gz /backup/

✅ 优点:简单、完整
❌ 缺点:需停机,适合冷备


二、使用 Kafka 自带工具做“逻辑备份”(推荐生产环境)

1. 使用 kafka-console-consumer + kafka-console-producer

导出 Topic 数据

kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic my_topic \
  --from-beginning \
  > my_topic.json

恢复数据

kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic my_topic \
  < my_topic.json

✅ 不需要停机
❌ 不含 Topic 配置、分区信息


三、使用 MirrorMaker(跨集群备份)

适合:

  • 灾备
  • 多数据中心
kafka-mirror-maker.sh \
  --consumer.config consumer.properties \
  --producer.config producer.properties \
  --whitelist ".*"

四、备份 Topic 配置 & ACL

1. 导出 Topic 配置

kafka-configs.sh \
  --bootstrap-server localhost:9092 \
  --entity-type topics \
  --entity-name my_topic \
  --describe

2. 导出 ACL(如启用)

kafka-acls.sh \
  --bootstrap-server localhost:9092 \
  --list

五、ZooKeeper / KRaft 元数据备份

ZooKeeper 模式

zkCli.sh
> ls /
> get /brokers

或直接备份:

/var/lib/zookeeper

KRaft 模式(新版 Kafka)

备份:

/var/lib/kafka/kraft

六、推荐备份方案(实战)

✅ 生产推荐组合

  • 定时 tar 备份 kafka-logs
  • 使用 MirrorMaker 做实时灾备
  • 定期导出 Topic 配置

✅ 测试环境

  • kafka-console-consumer 导出即可

如果你能告诉我:

  • Kafka 版本
  • 是否使用 ZooKeeper 还是 KRaft
  • 是否允许停机

我可以给你一套更精确的备份脚本。

0 踩