Filebeat 是一个轻量级的日志收集器,它可以与 Logstash 或 Elasticsearch 直接配合使用。Filebeat 本身不处理日志轮转,它只是读取和转发日志文件。日志轮转通常由操作系统或日志文件的配置来管理。
以下是一些常见的方法来实现日志轮转:
logrotate
)logrotate
是 Linux 系统中常用的日志轮转工具。你可以配置 logrotate
来管理 Filebeat 的日志文件。
创建一个 logrotate
配置文件,例如 /etc/logrotate.d/filebeat
:
/var/log/filebeat/filebeat.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
}
这个配置文件的意思是:
640
,属主为 root
,属组为 adm
。确保 logrotate
定期运行。通常情况下,logrotate
会每天运行一次,但你可以通过调整 /etc/logrotate.conf
或 /etc/logrotate.d/
目录下的配置来改变这个频率。
Filebeat 本身也支持日志轮转,但这种方式不如使用 logrotate
灵活。
编辑 Filebeat 配置文件(例如 /etc/filebeat/filebeat.yml
),添加或修改 logging.file
部分:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
logging.file:
name: /var/log/filebeat/filebeat.log
level: info
to_files: true
keepfiles: 7
permissions: "640"
rotation.period: 24h
rotation.keep_files: 7
这个配置的意思是:
/var/log/filebeat/filebeat.log
。info
。640
。如果你使用 systemd
来管理 Filebeat 服务,可以创建一个 systemd
的 drop-in 文件来配置日志轮转。
创建一个 systemd
drop-in 文件,例如 /etc/systemd/system/filebeat.service.d/override.conf
:
[Service]
StandardOutput=append:/var/log/filebeat/filebeat.log
StandardError=append:/var/log/filebeat/filebeat.log
SyslogIdentifier=filebeat
重新加载 systemd
配置并重启 Filebeat 服务:
sudo systemctl daemon-reload
sudo systemctl restart filebeat
虽然 Filebeat 本身不直接处理日志轮转,但你可以结合操作系统的 logrotate
工具或 Filebeat 的内置配置来实现日志轮转。通常情况下,使用 logrotate
是更推荐的做法,因为它提供了更多的灵活性和配置选项。