在CentOS系统下,Filebeat本身不负责日志轮转。日志轮转通常由logrotate工具来处理。但是,你可以配置Filebeat以读取已经被logrotate处理过的日志文件。以下是如何在CentOS上配置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/目录下。你可以创建一个新的配置文件,比如/etc/logrotate.d/filebeat,或者编辑现有的配置文件来包含Filebeat的日志文件。以下是一个基本的logrotate配置示例:
/var/log/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root root
}
这个配置会每天轮转日志文件,保留最近7天的日志,并对旧日志进行压缩。
确保Filebeat读取新的日志文件:
logrotate在轮转日志时会创建一个新的空的日志文件,并将旧的日志文件重命名。为了确保Filebeat能够读取这些新的日志文件,你需要确保Filebeat有足够的权限访问这些文件,并且在logrotate配置中使用了copytruncate选项。但是请注意,copytruncate选项可能会导致日志丢失,因为它会在复制日志后立即截断原始日志文件。
如果你不想使用copytruncate,你可以考虑使用logrotate的postrotate脚本来通知Filebeat重新打开日志文件。例如:
/var/log/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root root
postrotate
if [ -f /var/run/filebeat/filebeat.pid ]; then
kill -USR1 `cat /var/run/filebeat/filebeat.pid`
fi
endscript
}
这个postrotate脚本会向Filebeat发送一个USR1信号,告诉它重新打开日志文件。
重启Filebeat: 修改配置后,重启Filebeat服务以应用更改:
sudo systemctl restart filebeat
确保你的Filebeat用户有权限读取日志文件和执行logrotate脚本。如果你的Filebeat配置指向的是系统日志或其他特殊位置的日志,可能需要调整logrotate配置和Filebeat的权限设置。