一、準備工作:安裝Filebeat
在自定義配置前,需確保CentOS系統已安裝Filebeat。若未安裝,可通過以下命令使用YUM包管理器安裝:
sudo yum install filebeat
二、定位并編輯主配置文件
Filebeat的主配置文件默認位于/etc/filebeat/filebeat.yml。使用文本編輯器(如vi或nano)打開該文件:
sudo vi /etc/filebeat/filebeat.yml
三、自定義核心配置項
filebeat.inputs部分定義了Filebeat需要監控的日志文件或目錄。通過修改此部分,可指定日志路徑、類型及附加字段。常見示例如下:
.log文件:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/myapp/*.log
- /var/log/syslog
fields:
app: myapp
environment: production
注:
enabled: true表示啟用該輸入;fields用于添加自定義字段(如應用名稱、環境),便于后續索引區分。
output部分指定Filebeat發送日志的目標(如Elasticsearch、Logstash)。以下是常見輸出配置:
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch地址(多節點用逗號分隔)
index: "filebeat-%{+yyyy.MM.dd}" # 索引名稱格式(按天分割)
output.logstash:
hosts: ["localhost:5044"]
注:若Elasticsearch需要認證,需添加
username和password字段(如username: "elastic")。
processors部分用于處理日志數據(如過濾、添加字段、刪除敏感信息)。常見處理器示例如下:
processors:
- add_fields:
target: "" # 添加到根對象
fields:
processed: true
processors:
- remove_fields:
fields: ["message"]
ignore_missing: true
when:
contains:
message: "DEBUG" # 刪除包含"DEBUG"的日志行
注:處理器按順序執行,可根據需求組合多個處理器(如先過濾再添加字段)。
setup.template.settings部分用于定義Elasticsearch索引模板的設置(如分片數量、壓縮方式),提升索引性能:
setup.template.settings:
index.number_of_shards: 3 # 分片數量(根據數據量調整)
index.codec: best_compression # 使用最佳壓縮算法
index.refresh_interval: 30s # 索引刷新間隔(降低刷新頻率可提高寫入性能)
四、保存并重啟Filebeat
編輯完成后,按Esc鍵退出編輯器,輸入:wq保存并退出。然后重啟Filebeat服務以應用配置:
sudo systemctl restart filebeat
五、驗證配置有效性
sudo filebeat test config
若輸出filebeat configuration test passed,則表示配置正確。sudo systemctl status filebeat
若狀態顯示active (running),則服務已啟動。sudo tail -f /var/log/filebeat/filebeat
六、高級自定義:創建自定義模塊(可選)
若需復用特定日志的處理配置(如Nginx、MySQL日志),可創建自定義模塊:
sudo mkdir -p /etc/filebeat/modules.d/custom_module
custom_module.yml):filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
fields:
module: nginx
service: web_server
processors:
- add_fields:
targets: ["message"]
fields:
log_type: access
output.elasticsearch:
hosts: ["localhost:9200"]
index: "custom_nginx-%{+yyyy.MM.dd}"
filebeat.yml,添加模塊配置:filebeat.modules:
- module: custom_module
enabled: true
sudo systemctl restart filebeat
通過以上步驟,可完成CentOS中Filebeat的自定義配置,滿足不同場景的日志收集需求。