Filebeat日志轮转主要有两种方式:
# CentOS
sudo yum install logrotate
# Debian/Ubuntu
sudo apt-get install logrotate
/etc/logrotate.d/
下新建filebeat
文件,添加以下内容(以CentOS为例):/var/log/filebeat/filebeat.log {
daily # 每天轮转
rotate 7 # 保留7天日志
compress # 压缩旧日志
missingok # 忽略丢失文件
notifempty # 空文件不轮转
create 640 root adm # 新文件权限
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 # 手动测试
# 确保logrotate每日自动运行(检查/etc/cron.daily/logrotate)
/etc/filebeat/filebeat.yml
,在filebeat.inputs
中添加:filebeat.inputs:
- type: log
enabled: true
paths: ["/var/log/filebeat/*.log"]
logging.to_files: true
logging.files:
path: /var/log/filebeat
name: filebeat
keepfiles: 7 # 保留7个文件
permissions: "640"
sudo systemctl restart filebeat
logrotate
,支持更灵活的轮转策略(如按大小轮转、保留更多历史等)。