在 Ubuntu 上备份 Filebeat 的关键要点
备份清单与默认路径
| 备份项 | 典型路径 | 说明 |
|---|---|---|
| 主配置文件 | /etc/filebeat/filebeat.yml | 采集输入、输出、模块、处理器等核心配置 |
| 配置目录 | /etc/filebeat/ | 如有自定义模板、模块配置等,建议整目录备份 |
| 数据目录 | /var/lib/filebeat/ | Filebeat 本地状态(如 registry、offset),强烈建议备份 |
| 服务日志 | /var/log/filebeat/ | Filebeat 自身运行日志,便于排障 |
| 被采集的业务日志 | 例如 /var/log/ 或应用自定义路径 | 由 Filebeat 读取,需配合系统级日志轮转与归档策略 |
手动备份与恢复步骤
备份
停止 Filebeat,避免状态不一致
sudo systemctl stop filebeat
备份配置(单文件或整目录)
sudo cp /etc/filebeat/filebeat.yml /path/to/backup/filebeat.yml.bak
sudo tar -czvf /path/to/backup/filebeat_config.tar.gz -C /etc/filebeat .
备份数据目录(registry 等状态)
sudo tar -czvf /path/to/backup/filebeat_data.tar.gz -C /var/lib/filebeat .
备份 Filebeat 自身运行日志(可选)
sudo tar -czvf /path/to/backup/filebeat_logs.tar.gz -C /var/log/filebeat .
备份被采集的业务日志(可选,建议纳入系统级 logrotate)
sudo tar -czvf /path/to/backup/app_logs.tar.gz /var/log/your_app.log
恢复
恢复配置
sudo tar -xzvf /path/to/backup/filebeat_config.tar.gz -C /
恢复数据目录(覆盖前确认版本与路径一致)
sudo systemctl stop filebeat
sudo tar -xzvf /path/to/backup/filebeat_data.tar.gz -C /
启动服务
sudo systemctl start filebeat
验证
sudo systemctl status filebeat
sudo journalctl -u filebeat -f
提示:恢复数据目录后,如出现重复采集,通常与 registry 位点有关;请确保恢复的是同一套数据目录或在恢复前清理目标目录以避免冲突。
自动化备份与验证
定时备份脚本示例(含时间戳与多目标打包) sudo mkdir -p /opt/backup/filebeat cat > /opt/backup/filebeat/backup_filebeat.sh <<‘EOF’ #!/usr/bin/env bash set -e BACKUP_DIR=“/opt/backup/filebeat” TIMESTAMP=$(date +“%Y%m%d%H%M%S”) HOST=$(hostname -s)
mkdir -p “$BACKUP_DIR”
tar czvf “$BACKUP_DIR/filebeat_${HOST}config${TIMESTAMP}.tar.gz” -C /etc/filebeat . tar czvf “$BACKUP_DIR/filebeat_${HOST}data${TIMESTAMP}.tar.gz” -C /var/lib/filebeat .
tar czvf “$BACKUP_DIR/filebeat_${HOST}logs${TIMESTAMP}.tar.gz” -C /var/log/filebeat .
find “$BACKUP_DIR” -name “filebeat_*.tar.gz” -mtime +7 -delete
echo “Backup completed at $(date) -> $BACKUP_DIR” EOF chmod +x /opt/backup/filebeat/backup_filebeat.sh
加入 crontab(每天 02:00 执行) 0 2 * * * /opt/backup/filebeat/backup_filebeat.sh >> /var/log/filebeat_backup.log 2>&1
备份校验建议
长期保留与归档的正确做法