首页主机资讯ubuntu filebeat日志解析规则

ubuntu filebeat日志解析规则

时间2025-11-17 19:46:04发布访客分类主机资讯浏览550
导读:Ubuntu 上 Filebeat 日志解析规则与示例 一 常用解析方式与适用场景 JSON 解析:日志行本身是合法 JSON,使用 Filebeat 内置 decode_json_fields 或 json 处理器,将字段提取到事件顶层...

Ubuntu 上 Filebeat 日志解析规则与示例

一 常用解析方式与适用场景

  • JSON 解析:日志行本身是合法 JSON,使用 Filebeat 内置 decode_json_fieldsjson 处理器,将字段提取到事件顶层,便于检索与聚合。
  • Grok 解析:非结构化文本(如 syslog、应用自定义格式),在 Logstash 使用 grok 按模式提取字段,适合复杂文本。
  • Dissect 解析:基于分隔符的轻量级解析,适合固定分隔符的日志(性能优于 Grok)。
  • 多行合并:堆栈日志、Java 异常等跨行事件,使用 multiline 将多行合并为单事件再解析。
  • 系统日志模块:使用 Filebeat System 模块 一键采集并解析 /var/log/auth.log、/var/log/syslog 等系统日志,减少手工配置。

二 快速上手 系统日志模块

  • 启用模块与查看:
    • sudo filebeat modules enable system
    • sudo filebeat modules list
  • 配置输出到 Logstash(示例端口 5044):
    • /etc/filebeat/filebeat.yml 中:
      • output.logstash: hosts: [“localhost:5044”]
      • 注释或关闭 output.elasticsearch

  • 启动与验证:
    • sudo systemctl start filebeat & & sudo systemctl enable filebeat
    • 查看服务日志:sudo journalctl -u filebeat -f
  • 说明:System 模块内置针对 auth、syslog 等文件的解析与字段映射,适合开箱即用。

三 常用解析规则示例

  • JSON 日志(Filebeat 内联解析)

    • 适用:每行一个 JSON 对象
    • 示例配置:
      • filebeat.inputs:
        • type: log paths: [“/var/log/myapp/*.log”] processors:
          • decode_json_fields: fields: [“message”] target: “” add_error_key: true
      • 说明:解析后字段提升到事件根,若解析失败会添加 error.message 字段便于排查。
  • Spring Boot 单行文本(Dissect 轻量解析)

    • 日志样例:2023-08-05 20:47:11.069 INFO 3396 — [ main] org.example.Main : Started Main in 2.228 seconds
    • 示例配置:
      • filebeat.inputs:
        • type: log paths: [“/var/log/springboot/*.log”] processors:
          • dissect: tokenizer: “%{ logDate} %{ logTime} %{ logLevel} %{ pid} — [%{ thread} ] %{ logger} : %{ message} ” field: “message” target_prefix: “”
      • 说明:按固定格式快速切分,性能优于 Grok;若需进一步结构化,可在 Logstash 继续处理。
  • Nginx 访问日志(Logstash Grok 解析)

    • 思路:Filebeat 负责采集与传输,Logstash 用 grokcombined/apache 格式解析为结构化字段,并可结合 geoip 丰富地理信息。
    • 示例(Logstash 片段):
      • input { beats { port => 5044 } }
      • filter { grok { match => { “message” => “%{ COMBINEDAPACHELOG} ” } } geoip { source => “clientip” } }
      • output { stdout { codec => rubydebug } }
    • 说明:COMBINEDAPACHELOG 覆盖常见 Nginx/Apache 访问日志字段;GeoIP 需要安装对应数据库。
  • 多行堆栈日志合并(Java、Python traceback)

    • 示例配置:
      • filebeat.inputs:
        • type: log paths: [“/var/log/app/*.log”] multiline: pattern: ‘^\d{ 4} -\d{ 2} -\d{ 2} ’ # 以日期开头为新事件开始 negate: true match: after
      • 说明:将非日期行合并到上一行,避免堆栈被拆成多条事件。

四 部署与验证要点

  • 权限与路径:确保 Filebeat 对日志路径(如 /var/log/)具备读取权限;必要时使用 sudo 或调整文件权限/属主。
  • 输出选择:仅保留一种输出(Elasticsearch 或 Logstash),避免重复写入或模棱两可的管道。
  • 模块与管道配合:启用模块时,若走 Logstash,保持模块管线与 Logstash 配置一致;必要时在 Logstash 中参考模块字段命名进行处理。
  • 调试与重读:
    • 前台调试:filebeat -e -c /etc/filebeat/filebeat.yml -d “publish”
    • 从头重读(开发/测试):可清理 Filebeat 注册表目录(如 data/registry),让 Filebeat 重新采集历史文件(生产慎用)。
  • 运行状态检查:
    • 服务日志:sudo journalctl -u filebeat -f
    • 索引/数据:在 Elasticsearch 中查看索引列表与文档计数,确认数据已到达。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu filebeat日志解析规则
本文地址: https://pptw.com/jishu/749258.html
ubuntu filebeat日志存储策略 ubuntu filebeat资源占用情况分析

游客 回复需填写必要信息