Filebeat在Ubuntu上的插件使用指南
Filebeat的“插件”主要以**模塊(Module)**形式提供,覆蓋常見服務(如System、Redis、MySQL、Nginx等),包含預定義的配置模板(日志路徑、解析規則、輸出格式),無需額外安裝即可使用。Ubuntu環境下,啟用模塊的步驟如下:
通過Ubuntu官方倉庫安裝最新穩定版Filebeat:
sudo apt update
sudo apt install filebeat
模塊默認未啟用,需通過modules enable
命令激活。例如啟用System模塊(收集Ubuntu系統日志,如auth、syslog):
sudo filebeat modules enable system
啟用后,模塊配置文件會自動生成于/etc/filebeat/modules.d/
目錄(如system.yml
)。
查看已啟用的模塊列表:
sudo filebeat modules list
輸出應包含system
模塊(狀態為“enabled”)。
編輯/etc/filebeat/filebeat.yml
,設置數據輸出到Elasticsearch(默認本地):
output.elasticsearch:
hosts: ["localhost:9200"]
若需輸出到Logstash,可將output.elasticsearch
注釋,并啟用output.logstash
:
output.logstash:
hosts: ["localhost:5044"]
啟動Filebeat并設置為開機自啟:
sudo systemctl start filebeat
sudo systemctl enable filebeat
通過sudo systemctl status filebeat
確認服務狀態(應為“active (running)”)。
若需監控非模塊覆蓋的日志(如應用自定義日志),可通過**修改filebeat.inputs
**配置自定義輸入。例如,監控/var/log/myapp/*.log
文件:
打開/etc/filebeat/filebeat.yml
,添加以下內容:
filebeat.inputs:
- type: log # 使用log類型的輸入插件
enabled: true
paths:
- /var/log/myapp/*.log # 監控的日志路徑(支持通配符)
ignore_older: 72h # 忽略超過72小時的舊日志
fields:
app_name: "myapp" # 添加自定義字段(可選)
fields_under_root: true # 將自定義字段提升至根層級(可選)
通過processors
對日志數據進行預處理,例如添加標簽、刪除無用字段:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/myapp/*.log
processors:
- add_tags:
tags: ["production", "myapp"] # 添加標簽
- drop_fields:
fields: ["offset", "source"] # 刪除offset和source字段
保存文件后,重啟Filebeat使配置生效:
sudo systemctl restart filebeat
若需監控第三方服務(如MongoDB、Kafka),可通過以下方式獲取模塊:
方法1:通過Elastic官方倉庫
部分第三方模塊(如Redis)可通過Elastic APT倉庫安裝。添加倉庫并安裝:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt install filebeat-module-redis # 以Redis模塊為例
方法2:手動下載模塊
從GitHub下載第三方模塊代碼(如Redis模塊),復制到/etc/filebeat/modules.d/
目錄:
git clone https://github.com/elastic/beats.git
sudo cp -r beats/x-pack/filebeat/module/redis/* /etc/filebeat/modules.d/
編輯對應模塊的YAML文件(如/etc/filebeat/modules.d/redis.yml
),啟用模塊并設置日志路徑:
- module: redis
log:
enabled: true
var.paths: ["/var/log/redis/redis-server.log*"] # Redis日志路徑
啟用模塊并重啟Filebeat:
sudo filebeat modules enable redis
sudo systemctl restart filebeat
查看模塊的默認配置(如system
模塊):
sudo filebeat test config -e
首次使用模塊時,需加載索引模板(包含映射規則):
sudo filebeat setup --index-management
此命令會將模塊的索引模板加載到Elasticsearch,并創建Kibana儀表板(若已安裝Kibana)。
若模塊無法正常工作,查看Filebeat日志定位問題:
sudo tail -f /var/log/filebeat/filebeat
sudo filebeat modules list
),且配置文件語法正確(可通過filebeat test config
驗證)。sudo chown -R filebeat:filebeat /var/log/myapp
)。通過以上步驟,可在Ubuntu上靈活使用Filebeat的內置模塊、自定義輸入及第三方模塊,實現各類日志的收集與轉發。具體配置可根據實際需求調整,建議參考Filebeat官方文檔獲取最新信息。