在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实现日志分割。