分布式日志收归

filebeats

FileBeat,Ealstic旗下产品,基于GoLang,速度极佳,支持与Elastic others app完美整合,支持输出到kafka,es,logstash,redis....,更便捷地使日志结构化归档

  • 嵌套json字符串转换问题

    应用程序如果打印出嵌套json,而且内部json为字符串格式呈现,那么默认内部的json将会被es的message字段收纳,下面给一份配置,原因是我在调试初期遇到了这个问题

filebeat.prospectors:
- type: log
    enabled: true
    #json字段放到root下
    json.keys_under_root: true
    paths:
      - R:\\face\\logs\\localAgent\\focus\\localAgent.log
    
#全局process(定义在root上)
processors:
  # 这个process将json字符串的field转换为json obj并且添加到body,当然你也可以自定义target
  - decode_json_fields:
      fields: [message]
      target: "body"
      overwrite_keys: true
      # 注意这个解析深度取决于你的属性嵌套层数
      max_depth: 2
  # 删除原始字段
  - drop_fields:
      # 按自己版本支持情况添加when
      # when:
      #   has_fields: ["body"]
      fields: ["message"]

未完待续...