Filebeat支持多种日志格式,主要通过配置文件中的processors模块和输入类型实现,具体方式如下:
decode_json_fields处理器解析JSON日志,指定message_key字段提取JSON内容。processors:
- decode_json_fields:
fields: ["message"]
target: ""
overwrite_keys: true
multiline处理器合并多行日志,配置pattern匹配行首、match指定合并方式(如after)。multiline:
pattern: '^\d{4}-\d{2}-\d{2}'
negate: true
match: after
dissect处理器通过正则表达式提取字段,定义tokenizer模式和field目标字段。dissect:
tokenizer: '%{timestamp} %{log_level} [%{email}] %{message}'
field: "message"
if处理器根据日志内容区分格式,执行不同解析逻辑。processors:
- if: contains(message, "json_field")
then:
- json:
message_key: json_field
通过以上配置,Filebeat可灵活解析JSON、多行文本、自定义格式等多种日志类型,满足不同场景需求。