Filebeat日志轮转可通过logrotate工具或Filebeat自身配置实现,以下是具体方法:
sudo yum install logrotate -y # CentOS
/etc/logrotate.d/
下新建filebeat
文件,添加以下内容:/var/log/filebeat/*.log {
daily # 每天轮转
rotate 7 # 保留7天日志
compress # 压缩旧日志
missingok # 忽略丢失文件
notifempty # 空文件不轮转
create 0640 root root # 新日志权限及属主
postrotate
if [ -f /var/run/filebeat/filebeat.pid ]; then
kill -USR1 $(cat /var/run/filebeat/filebeat.pid) # 通知Filebeat重新打开日志
fi
endscript
}
sudo logrotate -f /etc/logrotate.d/filebeat
/etc/cron.daily/logrotate
存在,logrotate会自动每日运行。/etc/filebeat/filebeat.yml
,在filebeat.inputs
中添加:filebeat.inputs:
- type: log
enabled: true
paths: ["/var/log/filebeat/*.log"]
logging.file:
name: /var/log/filebeat/filebeat.log
keepfiles: 7 # 保留7个日志文件
permissions: "0640"
rotation.period: 24h # 每天轮转
sudo systemctl restart filebeat
注:此方式灵活性较低,推荐优先使用logrotate。/var/log/filebeat/
与实际一致,可通过filebeat.inputs.paths
调整。size
参数或调整Filebeat的rotation.size
(仅限部分版本)。