温馨提示×

ubuntu filebeat能否支持多种日志格式

小樊
33
2025-12-26 18:52:02
栏目: 智能运维

支持多种日志格式的能力Ubuntu 上,Filebeat 可以同时采集并解析多种日志格式,包括 系统日志(/var/log/syslog、/var/log/auth.log)Nginx(access.log、error.log)MySQL、以及各类自定义应用日志;内置 System/ Nginx/ MySQL 等模块可简化常见格式的采集与解析,并支持 JSON 解析多行日志合并 等能力。

实现方式

  • 使用内置模块:通过 filebeat modules enable 启用 system、nginx、mysql 等模块,自动完成输入与解析配置,适合标准化日志。
  • 自定义输入与处理器:在同一台主机上配置多个 filebeat.inputs,分别指向不同路径与解析方式;结合 processors(如 if/then、add_cloud_metadata)按内容或标签分流与增强。
  • 多行日志:为堆栈日志、Java 异常等配置 multiline,将多行合并为单条事件,避免碎片化。
  • 复杂解析交给 Logstash:将 output 指向 Logstash(默认端口 5044),在 Logstash 中用 grok、date、mutate 等完成更灵活的解析与丰富,再写入 Elasticsearch

最小配置示例

  • 同时采集系统日志与 Nginx,按标签分流到不同索引 filebeat.inputs:
  • type: log enabled: true paths:
    • /var/log/syslog tags: [“system”]
  • type: log enabled: true paths:
    • /var/log/nginx/*.log tags: [“nginx”] multiline.pattern: ‘^\d{4}-\d{2}-\d{2}’ # 示例:合并以日期开头的多行 multiline.negate: true multiline.match: after

output.elasticsearch: hosts: [“localhost:9200”] indices: - index: “filebeat-system-%{+yyyy.MM.dd}” when.contains: tags: “system” - index: “filebeat-nginx-%{+yyyy.MM.dd}” when.contains: tags: “nginx”

实践建议

  • 为不同日志类型设置不同 tags,便于后续在 Logstash 条件判断或在 ES/Kibana 中做索引与可视化分流。
  • JSON 日志 使用 json.* 选项(如 message_key、keys_under_root)直接结构化;对 多行堆栈 正确配置 multiline,避免事件被拆分。
  • 需要更强的解析与清洗能力时,采用 Filebeat → Logstash → Elasticsearch 的链路;仅做轻量采集与直发 ES 时,优先使用模块与内置处理器。

0