温馨提示×

linux kafka如何备份

小樊
39
2026-09-17 12:07:48
栏目: 智能运维

在 Linux 上备份 Kafka,通常分为 元数据备份(配置 / Topic / ACL) 和 数据备份(消息数据) 两类。下面按常用且安全的方式说明。


一、Kafka 元数据备份(推荐必做)

1. 备份 Kafka 配置

Kafka 配置一般在:

/opt/kafka/config/

或

/etc/kafka/

备份示例:

tar czf kafka-config-$(date +%F).tar.gz /opt/kafka/config

2. 备份 Topic / Partition / ACL(使用 kafka 自带工具)

(1)导出 Topic 信息

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

或(更完整):

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

(2)导出 ACL(如果启用了 SASL / ACL)

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

二、Kafka 消息数据备份(重点)

方式一:直接备份 Kafka 数据目录(最常用 ⭐)

Kafka 数据目录由 server.properties 中定义:

log.dirs=/data/kafka-logs

停止 Kafka(推荐)

systemctl stop kafka
# 或
/opt/kafka/bin/kafka-server-stop.sh

备份数据目录

tar czf kafka-data-$(date +%F).tar.gz /data/kafka-logs

✅ 优点:

  • 完整、可恢复
  • 适合单机或小型集群

❌ 缺点:

  • 需要停服或短暂 IO 压力

方式二:使用 MirrorMaker 做实时备份(生产推荐 ⭐⭐⭐)

适合 跨集群 / 容灾

旧版本(MirrorMaker 1)

kafka-mirror-maker.sh \
  --consumer.config consumer.properties \
  --producer.config producer.properties \
  --whitelist ".*"

新版本(MirrorMaker 2,Kafka 2.4+)

kafka-mirror-maker.sh \
  --config mm2.properties

✅ 优点:

  • 不停机
  • 支持双活、灾备

方式三:消费者重放(逻辑备份)

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

恢复:

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

✅ 适合少量数据
❌ 不适合 TB 级


三、ZooKeeper 备份(老版本 Kafka)

如果 Kafka < 2.8(依赖 ZooKeeper):

zkCli.sh
> snapshot

或直接备份:

/var/lib/zookeeper

四、恢复 Kafka 数据

  1. 停止 Kafka
  2. 解压数据备份
tar xzf kafka-data-2026-01-21.tar.gz -C /
  1. 启动 Kafka
systemctl start kafka

五、推荐备份策略(生产环境)

✅ 每天全量数据目录备份
✅ MirrorMaker2 实时同步
✅ 定期备份 Topic / ACL 信息
✅ 备份保留 7~30 天


如果你愿意,我可以:

  • 给你一个 自动备份脚本
  • 区分 单机 / 集群
  • 按 Kafka 版本(2.x / 3.x) 给方案

你现在是 单节点还是集群?Kafka 几版本?

0 踩