在CentOS系統中,Filebeat的日志輪轉可以通過配置logrotate工具來實現。以下是詳細的步驟和配置示例:
首先,確保你已經安裝了Filebeat。如果還沒有安裝,可以使用以下命令進行安裝:
sudo yum install filebeat
編輯Filebeat的配置文件,通常位于/etc/filebeat/filebeat.yml。確保配置文件中有以下內容:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["localhost:9200"]
創建一個新的logrotate配置文件來管理Filebeat的日志輪轉。你可以使用以下命令創建一個名為filebeat的文件:
sudo vi /etc/logrotate.d/filebeat
在文件中添加以下內容:
/var/log/filebeat/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root root
}
解釋:
daily: 每天輪轉一次日志。missingok: 如果日志文件丟失,不會報錯。rotate 7: 保留7天的日志文件。compress: 壓縮舊的日志文件。notifempty: 如果日志文件為空,則不進行輪轉。create 640 root root: 輪轉后創建新的日志文件,權限為640,屬主為root,屬組為root。你可以手動測試logrotate配置是否正確:
sudo logrotate -f /etc/logrotate.d/filebeat
這個命令會強制執行一次日志輪轉,并應用你剛剛創建的配置。
logrotate通常由系統的cron任務自動執行。你可以檢查/etc/cron.daily/logrotate文件,確保它包含了調用logrotate的命令:
/etc/cron.daily/logrotate
如果沒有,可以手動添加以下內容:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
然后確保該腳本有執行權限:
sudo chmod +x /etc/cron.daily/logrotate
你可以通過查看/var/log/filebeat/目錄下的日志文件來監控日志輪轉是否正常工作。例如:
ls -l /var/log/filebeat/
你應該能看到按日期命名的日志文件,并且舊文件已經被壓縮。
通過以上步驟,你就可以在CentOS系統中成功配置Filebeat的日志輪轉。