Filebeat 本身不負責日志壓縮,它的主要任務是收集、轉發和輸出日志。但是,你可以通過配置 Filebeat 和其他工具(如 logrotate)來實現日志壓縮。
以下是在 Ubuntu 上使用 Filebeat 和 logrotate 進行日志壓縮的步驟:
安裝 Filebeat:
如果你還沒有安裝 Filebeat,請按照官方文檔的說明進行安裝:https://www.elastic.co/guide/en/beats/filebeat/current/install-filebeat.html
配置 Filebeat:
編輯 Filebeat 的配置文件(通常位于 /etc/filebeat/filebeat.yml),并確保以下設置正確:
filebeat.inputs: 配置要收集的日志文件或目錄。output.elasticsearch: 配置 Elasticsearch 輸出。setup.template.settings: 配置索引模板設置(可選)。例如,如果你想收集 /var/log/myapp/*.log 文件,你可以這樣配置:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/myapp/*.log
安裝 logrotate:
logrotate 是一個用于管理日志文件的工具,它可以幫助你自動壓縮、刪除和輪換日志文件。在 Ubuntu 上,logrotate 通常已經預裝了。如果沒有,你可以使用以下命令安裝:
sudo apt-get install logrotate
創建 logrotate 配置文件:
在 /etc/logrotate.d/ 目錄下創建一個新的配置文件,例如 myapp:
sudo nano /etc/logrotate.d/myapp
在這個文件中,添加以下內容:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root adm
}
這個配置表示每天輪換日志文件,保留最近 7 天的日志,壓縮舊日志,如果日志文件不存在則不報錯,如果日志文件為空則不輪換,以及設置新日志文件的權限和所有者。
測試 logrotate 配置:
使用以下命令測試 logrotate 配置是否正確:
sudo logrotate -f /etc/logrotate.d/myapp
如果一切正常,你應該能看到 logrotate 正在壓縮和輪換日志文件。
現在,Filebeat 會收集日志并將其發送到 Elasticsearch,同時 logrotate 會自動壓縮和輪換日志文件。這樣,你就可以在 Ubuntu 上使用 Filebeat 和 logrotate 實現日志壓縮了。