温馨提示×

Debian Kafka如何备份

小樊
38
2026-07-11 17:53:52
栏目: 智能运维

在 Debian 上备份 Kafka,通常分为 Kafka 数据备份Kafka 配置/元数据备份 两部分。下面按常见生产环境做法说明。


一、Kafka 数据备份(核心)

Kafka 的数据默认存放在 log.dirs 指定的目录中(通常是 /var/lib/kafka/data/tmp/kafka-logs)。

1️⃣ 查看数据目录

grep log.dirs /etc/kafka/server.properties

示例:

log.dirs=/var/lib/kafka/data

2️⃣ 停止 Kafka(推荐)

避免数据不一致:

systemctl stop kafka

3️⃣ 备份数据目录

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

或者同步到远程:

rsync -avz /var/lib/kafka/data/ user@backup:/backup/kafka/

这是最完整的数据备份方式


4️⃣ 启动 Kafka

systemctl start kafka

二、Kafka 配置备份(必须)

1️⃣ 备份配置文件

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.properties

三、ZooKeeper 数据备份(如果使用 ZK)

Kafka 旧版本依赖 ZooKeeper 存储元数据。

1️⃣ 查看 ZK 数据目录

grep dataDir /etc/kafka/zookeeper.properties

示例:

dataDir=/var/lib/zookeeper

2️⃣ 停止 ZooKeeper

systemctl stop zookeeper

3️⃣ 备份 ZK 数据

tar -czvf zookeeper-data-$(date +%F).tar.gz /var/lib/zookeeper

4️⃣ 启动 ZooKeeper

systemctl start zookeeper

四、Kafka KRaft 模式(无 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-log

kafka-dump-log.sh --files /var/lib/kafka/data/topic-0/*.log

或使用 MirrorMaker / 导出工具

  • MirrorMaker 2
  • kafka-console-consumer + 重定向
  • Kafka Connect

六、恢复 Kafka 数据(简要)

  1. 停止 Kafka
  2. 解压备份数据到原目录
  3. 恢复配置文件
  4. 启动 ZooKeeper / Kafka

⚠️ 注意:

  • Kafka 版本必须一致
  • broker.id 不能冲突
  • 数据目录权限正确

七、推荐备份策略

✅ 定期全量备份
✅ 远程存储(NFS / 对象存储)
✅ 结合 Kafka 多副本机制(不是备份,但很重要)
✅ 使用 Ansible / 脚本自动化


如果你愿意,可以告诉我:

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

我可以给你一套 针对你环境的完整备份脚本

0