Filebeat日志格式自定义指南
一 概念澄清
二 自定义Filebeat自身运行日志格式
logging:
level: info
to_files: true
files:
path: /var/log/filebeat
name: filebeat.log
keepfiles: 7
permissions: 0640
format: json
sudo systemctl restart filebeatsudo tail -f /var/log/filebeat/filebeat.log三 自定义被采集日志的事件结构与内容
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
fields:
env: prod
app: order-service
fields_under_root: false # 设为 true 时,fields 将提升到事件根层级
processors:
- dissect:
tokenizer: "[%{timestamp}] -%{parentTraceId} -%{traceId} -%{host} -%{port} -%{appName} -%{pid} -[%{level}] -[%{thread}] -%{class} -%{line} - %{message}"
field: "message"
target_prefix: ""
- convert:
fields:
- {from: timestamp, to: "@timestamp", type: date, formats: ["yyyy-MM-dd HH:mm:ss.SSS"]}
- drop_fields:
fields: ["message", "timestamp"] # 解析后可删除原始字段
filebeat.inputs:
- type: filestream
enabled: true
paths:
- /var/log/app/*.log
parsers:
- multiline:
type: pattern
pattern: '^\['
negate: true
match: after
output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
# 如需自定义模板可在 setup.template 下调整
sudo systemctl restart filebeatcurl -X GET "localhost:9200/filebeat-*/_search?pretty"。四 常见问题与排查
filebeat test config -c filebeat.yml 校验。