在CentOS系統上安裝Filebeat,推薦通過YUM倉庫安裝(自動處理依賴),步驟如下:
sudo yum update -y
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
sudo yum install filebeat -y
若需手動安裝,可下載RPM包后通過rpm -ivh filebeat-*.rpm
命令安裝。
Filebeat的核心配置文件位于/etc/filebeat/filebeat.yml
,需重點配置輸入源、輸出目標及處理器:
filebeat.inputs
配置監控的日志文件路徑。例如,監控/var/log/myapp/*.log
(應用日志目錄):filebeat.inputs:
- type: log # 輸入類型為日志
enabled: true
paths:
- /var/log/myapp/*.log # 監控所有.log后綴文件
exclude_files: ['\.gz$'] # 排除.gz壓縮文件
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch地址
index: "myapp-logs-%{+yyyy.MM.dd}" # 動態生成日期索引(如myapp-logs-2025.09.24)
timestamp level message
),可使用dissect
處理器提取字段:filebeat.inputs:
- type: log
paths:
- /var/log/myapp/*.log
processors:
- dissect:
tokenizer: "%{timestamp} %{level} %{message}" # 日志格式模板
field: "message" # 從message字段提取
target_prefix: "" # 直接添加到事件根字段
完整配置示例可參考Filebeat官方文檔。sudo systemctl start filebeat
sudo systemctl enable filebeat
sudo systemctl status filebeat
(若顯示“active (running)”則表示正常)sudo tail -f /var/log/filebeat/filebeat.log
(確認是否成功讀取應用日志并發送至Elasticsearch)。kibana.yml
連接Elasticsearch:server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
sudo systemctl start kibana
,通過瀏覽器訪問http://localhost:5601
。myapp-logs-*
(與Filebeat輸出的索引名稱匹配),選擇時間字段(如@timestamp
)。level:ERROR
)篩選、分析應用日志(如錯誤日志統計、時間趨勢分析)。filestream
替代log
,提升大文件處理效率和資源占用:filebeat.inputs:
- type: filestream
enabled: true
paths:
- /var/log/myapp/*.log
bulk_max_size
(批量發送大小,默認50MB)提高傳輸效率;設置scan_frequency
(文件掃描間隔,默認10s)平衡實時性與性能。