在CentOS上配置Filebeat进行日志分割,可以通过以下几个步骤来实现:
首先,确保你已经安装了Filebeat。如果还没有安装,可以使用以下命令进行安装:
sudo yum install filebeat
编辑Filebeat的配置文件,通常位于 /etc/filebeat/filebeat.yml。
sudo vi /etc/filebeat/filebeat.yml
确保你已经配置了需要监控的日志路径。例如:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
Filebeat本身不直接处理日志分割,但它可以监控已经分割的日志文件。你可以使用 filebeat.inputs 中的 ignore_older 和 scan_frequency 参数来控制Filebeat对旧日志文件的扫描频率。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
ignore_older: 72h
scan_frequency: 10s
配置Filebeat将日志发送到Elasticsearch或Logstash。例如,发送到Elasticsearch:
output.elasticsearch:
hosts: ["localhost:9200"]
启动Filebeat服务并设置开机自启动:
sudo systemctl start filebeat
sudo systemctl enable filebeat
检查Filebeat的日志以确保它正常运行:
sudo journalctl -u filebeat -f
如果你需要更复杂的日志分割逻辑,可以编写一个脚本来自定义日志分割,并在Filebeat配置中引用这个脚本。
例如,创建一个日志分割脚本 rotate_logs.sh:
#!/bin/bash
LOG_DIR="/var/log"
LOG_FILE="app.log"
# 分割日志文件
logrotate -f /etc/logrotate.d/app <<EOF
${LOG_DIR}/${LOG_FILE} {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
EOF
确保脚本有执行权限:
chmod +x rotate_logs.sh
然后在Filebeat配置中引用这个脚本:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
ignore_older: 72h
scan_frequency: 10s
processors:
- add_fields:
fields:
log_rotate_script: "/path/to/rotate_logs.sh"
通过以上步骤,你可以在CentOS上配置Filebeat进行日志分割。Filebeat会监控已经分割的日志文件,并将其发送到Elasticsearch或Logstash进行进一步处理。如果你需要更复杂的日志分割逻辑,可以编写自定义脚本并在Filebeat配置中引用。