CentOS Filebeat支持哪些日志格式
导读:支持的主要日志格式与处理方式 纯文本行式日志(默认):不做结构化解析,整行作为 message 字段采集,适合大多数系统与应用的标准输出/错误输出。可通过多行配置将堆栈跟踪等合并为单条事件。适用于 centos 上常见的 /var/log...
支持的主要日志格式与处理方式
- 纯文本行式日志(默认):不做结构化解析,整行作为 message 字段采集,适合大多数系统与应用的标准输出/错误输出。可通过多行配置将堆栈跟踪等合并为单条事件。适用于 centos 上常见的 /var/log/*.log 等文本日志。
- JSON 日志:逐行解析为结构化字段,支持将解析结果提升到事件根层级,并可配置遇到解析错误时生成错误字段。适合应用直接输出 json 的场景(如 nginx 的 json 日志)。
- 键值对日志(KV):通过处理器(如 dissect 或自定义脚本)按分隔符/模式将 message 拆分为多个字段,适合 key=value 或固定分隔符格式。
- 多行日志:对以时间戳、堆栈前缀等开头的行进行合并,解决 java、tomcat 等堆栈跨多行的采集问题。
- 系统日志(syslog 风格):可直接采集 /var/log/messages、/var/log/secure 等文本日志,结合 dissect/grok 或在下游用 ingest pipeline 做进一步解析;也可使用 filebeat 的 system 模块(需启用对应模块并配置)。
常用配置示例
-
json 日志(逐行解析并提升到根层级) filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/access.log json.keys_under_root: true json.overwrite_keys: true json.add_error_key: true
- type: log
enabled: true
paths:
-
多行日志(合并 java/tomcat 堆栈) filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/app/*.log multiline.pattern: ‘^\d{ 4} -\d{ 2} -\d{ 2} ’ multiline.negate: true multiline.match: after timeout: 5s
- type: log
enabled: true
paths:
-
键值对日志(dissect 快速切分) filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/app/kv.log processors:
- dissect: tokenizer: “%{ ts} %{ level} %{ msg} ” field: “message” target_prefix: “”
- type: log
enabled: true
paths:
在 CentOS 上的实践建议
- 配置路径通常为 /etc/filebeat/filebeat.yml;完成后用 sudo systemctl start filebeat 启动,用 sudo systemctl status filebeat 检查状态,并在 Kibana(端口 5601) 中创建索引模式进行可视化。
- 输出到 Elasticsearch 时,可按类型自定义索引名,例如:index: “nginx-%{ [agent.version]} -%{ +yyyy-MM} ”;若需关闭 ilm 以使用自定义索引,可设置 setup.ilm.enabled: false。
- 若需更强的解析能力(如 grok 模式、复杂条件),可将日志输出到 Logstash,在 logstash 中完成解析后再写入 ES。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Filebeat支持哪些日志格式
本文地址: https://pptw.com/jishu/778851.html
