Filebeat支持哪些日志格式
导读:Filebeat支持的日志格式与解析能力 一 内置解析器与容器日志 JSON 与 NDJSON:内置 JSON 解码器,可将每行 JSON 展开到事件顶层;适合应用直接输出 JSON 的场景。NDJSON(逐行 JSON)同样适用。常见选...
Filebeat支持的日志格式与解析能力
一 内置解析器与容器日志
- JSON 与 NDJSON:内置 JSON 解码器,可将每行 JSON 展开到事件顶层;适合应用直接输出 JSON 的场景。NDJSON(逐行 JSON)同样适用。常见选项:json.keys_under_root、json.overwrite_keys、json.add_error_key、json.message_key 等。对于多行 JSON(如堆栈),可先按行解析为 JSON,再结合多行策略或后续处理器重组事件。
- Syslog:内置 syslog 解析器,支持 RFC 3164 与 RFC 5424,可自动检测格式(format: auto),并可指定时区(timezone)、错误记录(log_errors)等。
- 容器与 Kubernetes 日志:通过 filestream 输入的 container 解析器读取容器标准输出/错误流,支持 docker 与 cri 格式自动检测(format: auto/docker/cri),便于在 K8s 环境下直接解析容器日志。
- 多行事件处理:提供多行配置(如 pattern/negate/match)以将 Java 堆栈、异常跟踪等合并为单个事件,常与上述解析器配合使用。
二 模块生态覆盖的常见服务日志 Filebeat 提供丰富的官方模块(modules),开箱即用地解析并可视化常见服务日志,典型包括:Nginx、Apache、MySQL、Kafka 等。模块通常包含:默认日志路径、必要的多行合并、Elasticsearch Ingest Pipeline(字段类型与解析)、以及 Kibana 仪表板。以 Nginx 为例,模块内置对 access 与 error 的解析与展示能力。
三 通用文本与正则场景
- 对于未结构化的纯文本日志(例如自定义格式或简单分隔日志),Filebeat 可作为“逐行采集器”直接发送原始消息,后续在 Logstash 或通过 Ingest Pipeline 使用 Grok/Dissect 等处理器进行解析;也可在 Filebeat 端使用 include_message 等解析器进行消息过滤与分流,再进入后续解析链路。
四 快速配置示例
- 解析 JSON 日志(将 JSON 字段提升到顶层,遇到解析错误添加 error.message)
filebeat.inputs:
- type: filestream
id: app-json
paths:
- /var/log/app/*.log
parsers:
- json:
keys_under_root: true
overwrite_keys: true
add_error_key: true
- 解析容器 stdout/stderr(自动识别 docker/cri)
filebeat.inputs:
- type: filestream
id: k8s-container
paths:
- /var/log/containers/*.log
parsers:
- container:
stream: stdout
- 解析 syslog(指定 RFC 格式与时区)
filebeat.inputs:
- type: filestream
id: syslog
paths:
- /var/log/syslog
parsers:
- syslog:
format: rfc5424
timezone: America/Chicago
log_errors: true
- 多行合并示例(以“[”开头的行作为新事件开始)
filebeat.inputs:
- type: filestream
id: tomcat-error
paths:
- /opt/tomcat/logs/catalina.out
multiline:
pattern: '^\['
negate: true
match: after
上述示例覆盖了 JSON、容器、syslog 与 多行 等常见场景,可按实际日志格式组合使用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Filebeat支持哪些日志格式
本文地址: https://pptw.com/jishu/753155.html
