Filebeat在Ubuntu上的日志存儲策略主要涉及日志采集路徑配置、日志輪轉與壓縮、輸出目標管理及性能優化,具體如下:
通過修改/etc/filebeat/filebeat.yml
文件,指定監控的日志文件路徑,支持通配符(如/var/log/*.log
)或具體文件路徑:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/nginx/*.log
推薦使用系統logrotate
工具(更靈活):
創建/etc/logrotate.d/filebeat
配置文件,設置輪轉周期、保留天數、壓縮等參數:
/var/log/filebeat/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
postrotate
kill -USR1 $(cat /var/run/filebeat/filebeat.pid) # 通知Filebeat重新打開日志文件
endscript
}
或通過Filebeat內置參數配置(需注意兼容性):
在filebeat.yml
中添加logging.file
配置,設置日志文件路徑、輪轉周期及保留數量:
logging:
file:
path: /var/log/filebeat/filebeat.log
name: filebeat
keepfiles: 7 # 保留7個日志文件
rotation.period: 24h # 每天輪轉
輸出到Elasticsearch(常用):
配置output.elasticsearch
,指定ES地址、索引名稱(可包含日期,如filebeat-%{+yyyy.MM.dd}
),并啟用ILM(索引生命周期管理)自動歸檔舊日志:
output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{+yyyy.MM.dd}"
輸出到文件(調試用):
啟用output.logfile
,指定輸出路徑和權限:
output.logfile:
enabled: true
path: /var/log/filebeat/output.log
permissions: "644"
queue.mem.events
(默認4096)控制內存隊列大小,或通過max_concurrent_files
限制并發文件讀取數,避免資源占用過高。bulk_max_size
(如5000),批量發送日志以減少網絡開銷。journalctl
查看Filebeat運行日志:sudo journalctl -u filebeat -f
sudo filebeat test config
總結:Filebeat本身不直接管理日志存儲,需結合logrotate
或輸出目標(如ES)實現輪轉與歸檔,核心策略是通過配置文件靈活控制日志路徑、輪轉規則及輸出方式,確保日志高效存儲與分析。