Filebeat 是一个轻量级的日志收集器,用于将日志文件发送到如 Elasticsearch 或 Logstash 等后端服务。在 CentOS 上实现日志分割,通常是指对 Filebeat 自身的日志文件进行分割,以及对它收集的日志文件进行分割。以下是两种情况的解决方案:
Filebeat 默认会将日志输出到标准输出(stdout)或者指定的日志文件中。如果你想要对 Filebeat 的日志文件进行分割,可以通过配置 logging.file
和 logging.level
参数来实现。
首先,确保你的 Filebeat 配置文件(通常位于 /etc/filebeat/filebeat.yml
)中有以下配置:
logging:
file:
enabled: true
path: /var/log/filebeat/filebeat
name: filebeat
keepfiles: 7
permissions: 640
这里的 keepfiles
参数指定了 Filebeat 保留的日志文件数量。当新的日志文件被创建时,旧的日志文件会根据这个设置进行分割和归档。
对于 Filebeat 收集的日志文件,通常是在目标系统上进行日志分割。例如,如果你使用的是 systemd-journald 来管理日志,它默认会进行日志分割。如果你使用的是其他日志系统,如 rsyslog 或 logrotate,你需要配置相应的日志分割策略。
以 logrotate 为例,你可以创建一个针对 Filebeat 收集日志的配置文件,通常位于 /etc/logrotate.d/filebeat
:
/var/log/filebeat/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root root
}
这个配置文件指定了 Filebeat 收集的日志文件每天分割一次,保留最近 7 天的日志,并对旧日志进行压缩。
确保 logrotate 服务是启用的,并且定期运行(通常是每天一次),以便执行日志分割。
sudo systemctl enable logrotate
sudo systemctl start logrotate
或者手动触发 logrotate 来测试配置:
sudo logrotate -f /etc/logrotate.conf
这样,Filebeat 在 CentOS 上就可以实现对自身日志和收集的日志文件的分割了。记得定期检查配置以确保它们按预期工作。