自定義Filebeat日志收集規則主要通過修改配置文件filebeat.yml
實現,以下是關鍵配置項及示例:
指定日志路徑
在filebeat.inputs
中通過paths
定義需采集的日志文件路徑,支持通配符(如/var/log/*.log
)。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
過濾日志內容
include_lines
和exclude_lines
配置。include_lines: ['^ERROR', '^WARN']
exclude_lines: ['^DEBUG']
multiline
配置合并多行日志(如Java堆棧跟蹤)。multiline:
pattern: '^\['
negate: true
match: after
添加自定義字段
使用fields
或add_fields
處理器向日志事件添加元數據。
processors:
- add_fields:
fields:
environment: production
app_id: myapp
日志解析與處理
decode_json_fields
處理器提取JSON字段。processors:
- decode_json_fields:
fields: ["message"]
target: ""
dissect
處理器按正則表達式解析非JSON日志。processors:
- dissect:
tokenizer: '%{timestamp} %{loglevel} %{message}'
field: "message"
輸出配置
指定日志發送目標(如Elasticsearch、Logstash),并設置索引名稱等參數。
output.elasticsearch:
hosts: ["localhost:9200"]
index: "custom-logs-%{+yyyy.MM.dd}"
高級配置
setup.template
配置索引分片、壓縮等參數。ignore_older
、close_older
等參數控制文件保留和關閉策略。生效步驟:
修改配置后,重啟Filebeat服務使規則生效,并通過日志或監控命令驗證配置正確性。
參考來源: