分布式日志收归
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"]
未完待续...