在CentOS系统中,Filebeat本身并不直接处理日志轮转。日志轮转通常由系统的日志管理工具如logrotate
来处理。但是,你可以配置Filebeat以读取已经被logrotate
处理过的日志文件。以下是如何配置Filebeat与logrotate
一起工作的步骤:
安装Filebeat: 如果你还没有安装Filebeat,可以使用以下命令安装:
sudo yum install filebeat
配置Filebeat:
编辑Filebeat的配置文件,通常位于/etc/filebeat/filebeat.yml
,确保它指向正确的日志文件路径。例如:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
配置logrotate:
logrotate
的配置文件通常位于/etc/logrotate.d/
目录下。你可以创建一个新的配置文件或者编辑现有的来处理Filebeat的日志文件。例如,如果你想要轮转/var/log/filebeat/filebeat
文件,你可以创建一个名为filebeat
的文件:
sudo vi /etc/logrotate.d/filebeat
然后添加以下内容:
/var/log/filebeat/filebeat {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
这个配置将会每天轮转日志文件,保留最近7天的日志,并且压缩旧的日志文件。
重启logrotate:
为了让新的配置生效,你可以手动触发一次logrotate
:
sudo logrotate -f /etc/logrotate.conf
确保Filebeat读取新轮转的日志:
logrotate
在轮转日志时会创建一个新的空日志文件,并将旧日志文件重命名。Filebeat会自动检测到这些变化并开始读取新的日志文件。
请注意,如果你的日志文件在被logrotate
重命名之前已经被Filebeat打开,Filebeat可能不会立即读取新的日志文件。为了确保Filebeat能够读取新轮转的日志,你可以在filebeat.yml
中配置close_inactive
选项,这样Filebeat会在一段不活动之后关闭文件,允许logrotate
重命名它们:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
close_inactive: 1m
在这个例子中,如果一个日志文件在1分钟内没有新的事件写入,Filebeat将会关闭它,这样logrotate
就可以重命名这个文件了。
确保在生产环境中测试任何配置更改,以确保它们按预期工作。