1. 安装Filebeat
首先在目标服务器上安装Filebeat(以CentOS为例,可通过EPEL仓库或官网下载安装包)。使用EPEL仓库安装的命令如下:
sudo yum install epel-release
sudo yum install filebeat
或直接下载官方压缩包并解压安装。
2. 配置Filebeat输入源
编辑Filebeat主配置文件(/etc/filebeat/filebeat.yml),通过filebeat.inputs模块指定需要备份的日志文件路径。例如,监控系统日志和Secure日志:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/messages
- /var/log/secure
可根据实际需求添加更多日志路径(如应用日志、Nginx日志等)。
3. 配置日志输出目标
将日志数据发送到长期存储系统(如Elasticsearch、Logstash或本地文件),确保数据持久化。常见配置示例如下:
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch集群地址
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 按日期分索引
output.file:
path: "/tmp/filebeat_backups" # 本地备份目录
filename: "filebeat_backup"
keepfiles: 7 # 保留最近7天文件
output.logstash:
hosts: ["logstash-server:5044"] # Logstash服务器地址
```。
4. 启用Filebeat归档功能(可选)
通过Filebeat的archive模块自动归档原始日志文件,避免数据丢失。在filebeat.yml中添加:
filebeat.archive.enabled: true
filebeat.archive.files:
- path: /var/log/*.log # 需要归档的日志路径
destination: /var/backups/filebeat_archives # 归档目录
归档后的文件会保留原始格式,便于后续恢复。
5. 配置日志轮转(防止磁盘爆满)
使用logrotate工具定期轮转Filebeat自身日志(/var/log/filebeat/filebeat)和收集的日志文件,避免单个文件过大。编辑/etc/logrotate.d/filebeat文件,添加以下配置:
/var/log/*.log {
daily # 每天轮转
missingok # 文件缺失不报错
rotate 7 # 保留7天
compress # 压缩旧日志
notifempty # 空文件不轮转
create 640 root adm # 新文件权限
}
此配置会自动处理日志轮转和压缩。
6. 定期备份Filebeat数据目录
Filebeat的持久化数据(如注册表文件、状态信息)存储在/var/lib/filebeat目录下,需定期备份以确保数据一致性。可使用rsync或tar命令创建备份脚本(如/usr/local/bin/backup_filebeat.sh):
#!/bin/bash
SOURCE_DIR="/var/lib/filebeat"
BACKUP_DIR="/backup/filebeat_$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
rsync -av --delete "$SOURCE_DIR/" "$BACKUP_DIR/"
通过crontab -e设置定时任务(每天凌晨2点执行):
0 2 * * * /usr/local/bin/backup_filebeat.sh
```。
**7. 监控备份状态**
定期检查Filebeat运行状态和备份日志,确保备份正常。常用命令:
```bash
# 查看Filebeat服务状态
sudo systemctl status filebeat
# 查看Filebeat实时日志(排查备份问题)
sudo journalctl -u filebeat -f
# 检查备份目录是否存在及文件数量
ls -lh /backup/filebeat_*/ | wc -l
若发现备份失败,可通过日志定位原因(如网络问题、权限不足)。