在 Ubuntu 上备份 Kafka,通常分为 配置备份 和 数据备份 两部分。下面按常见场景说明。
Kafka 的配置一般在这些目录(以官方 tar 包安装为例):
/opt/kafka/config/
/etc/kafka/ # 如果是 apt 安装
sudo cp -r /opt/kafka/config /opt/kafka/config.bak
# 或
sudo tar czf kafka-config-backup.tar.gz /opt/kafka/config
server.propertiesproducer.propertiesconsumer.propertieszookeeper.properties(如果用 ZooKeeper)server.properties 中的 log.dirs 路径Kafka 的数据默认在:
log.dirs=/tmp/kafka-logs
生产环境一般是:
/var/lib/kafka/logs
直接拷贝 Kafka 数据目录有风险,必须在 Kafka 停止或副本一致时进行。
sudo systemctl stop kafka
sudo tar czf kafka-data-backup.tar.gz /var/lib/kafka/logs
sudo systemctl start kafka
kafka-mirror-maker.sh \
--consumer.config consumer.properties \
--producer.config producer.properties \
--whitelist '*'
适合:
ZooKeeper 数据目录:
dataDir=/var/lib/zookeeper
备份:
sudo systemctl stop zookeeper
sudo tar czf zk-backup.tar.gz /var/lib/zookeeper
sudo systemctl start zookeeper
#!/bin/bash
DATE=$(date +%F)
tar czf /backup/kafka-config-$DATE.tar.gz /opt/kafka/config
tar czf /backup/kafka-data-$DATE.tar.gz /var/lib/kafka/logs
加入 crontab:
0 2 * * * /opt/backup-kafka.sh
log.retention.hours 控制数据生命周期如果你能告诉我:
我可以给你 更精确的备份方案。