在CentOS系统下,使用Filebeat进行日志分割可以通过配置Filebeat的processors
和fields
来实现。以下是详细的步骤:
首先,确保你已经安装了Filebeat。如果还没有安装,可以使用以下命令进行安装:
sudo yum install filebeat
编辑Filebeat的配置文件,通常位于/etc/filebeat/filebeat.yml
。
确保你的输入配置正确,例如:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
添加一个processors
部分来处理日志分割。你可以使用dissect
或grok
处理器来解析日志,并使用add_fields
处理器来添加新的字段,以便后续处理。
processors:
- dissect:
tokenizer: '%{timestamp} %{log_level} %{message}'
field: 'message'
target_prefix: ''
when:
contains:
- 'timestamp'
- 'log_level'
- 'message'
- add_fields:
fields:
log_file: 'my_app.log'
配置Filebeat将处理后的日志发送到Elasticsearch或其他输出目标。例如,发送到Elasticsearch:
output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
启动Filebeat并检查其状态:
sudo systemctl start filebeat
sudo systemctl enable filebeat
确保日志文件被正确分割并发送到Elasticsearch。你可以使用以下命令查看Elasticsearch中的索引:
curl -X GET "localhost:9200/_cat/indices?v"
你应该能看到类似filebeat-7.x.x-yyyy.MM.dd
的索引,这表明日志已经被正确分割。
如果你希望系统级别的日志文件(如/var/log/messages
)也能被Filebeat处理,你需要配置系统的日志轮转(logrotate)。编辑/etc/logrotate.d/messages
文件,添加以下内容:
/var/log/messages {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
sharedscripts
postrotate
/usr/bin/systemctl restart filebeat.service
endscript
}
这会每天轮转日志文件,并在轮转后重启Filebeat服务,确保新的日志文件被Filebeat处理。
通过以上步骤,你可以在CentOS系统下使用Filebeat实现日志分割。