使用Filebeat采集json日志未能成功解析的问题以及其他踩过的坑

使用Filebeat采集JSON格式日志入库到Elasticsearch中,Mark一下第一次配置时踩过的坑。

  • 第1坑:每行日志被整个入到了ES索引中的一个message字段,而不是按照json解析后的字段入库

       解决方案:这个问题的原因是因为json日志中只要有filebeat无法解析的格式,就会把整条记录当做一个字符串处理,入库到一个message字段,我是日志中有Windows下的路径,反斜杠和后面的字母被当做了转义字符无法识别,所以记录被截断导致解析失败。如果不是需要解析嵌套json

对象的话,也不用配置什么processors,别搞复杂了!

  • 第2坑:Filebeat日志中报 “Error decoding JSON: EOF” 错误

       解决方案:因为很多情况会出现这个错误,但我是因为每行数据都是以 } 大括号结尾的,我在后面加个逗号,就不再报错,可能是Filebeat解析json要求对象之间必须有逗号吧,光换行是不行的!

  • 第3坑:Filebeat配置检测报 “setup.template.name and setup.template.pattern have to be set if index name is modified” 错误

       解决方案:这个错误本身提示很明显,只要我们配置了索引名格式,就必须要同时配置setup.template.name 和setup.template.pattern,但是,我配置了这两项怎么还是不行呢,还是同样的错误,重点来了:这两项的配置必须要顶格配置,不可以和index对齐写到一个缩进级别!这个是很容易写错的,大家注意!正确的写法:

  • 第四,算不上坑吧,只是个提示,就是通过Filebeat采集JSON日志入库到Elasticsearch中,如果默认配置,所有的json字段会最终被存储在一个json字段对象下,如果不想这样存储,想之间存储到root节点下,那么可以加如下配置,当然这些官方文档都有介绍:  
         json.keys_under_root: true
         json.overwrite_keys: true

附上我的完整配置和测试json共大家参考:

filebeat.inputs:
- type: log

  enabled: true
  paths:
    - /usr/local/analyzer/test.log
  json.keys_under_root: true
  json.add_error_key: true
  json.overwrite_keys: true
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.0.81:9200"]
  index: "filebeat-testindex-%{+yyyy.MM.dd}"
setup.template.name: "filebeattest"
setup.template.pattern: "filebeattest-*"

测试json:

{"sn" : "XASDF324FRWGDSV6GAB","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:35","ulPath" : "D:/WeChat Files/002/Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/WeChat Files/002/Files/a.txt","szNewPathName" : "D:/WeChat Files/002/Files/b.txt"},
{"sn" : "XASDF324FRWGDSV6GAC","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:36","ulPath" : "D:/WeChat/Files/002/Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/WeChat/WeChat Files/002Files/a.txt","szNewPathName" : "D:/WeChat/WeChatFiles002Files/b.txt"},
{"sn" : "XASDF324FRWGDSV6GAD","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:37","ulPath" : "D:/WeChatWeChatFiles/002/Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/eChatWeChat Files/002/Filesa.txt","szNewPathName" : "D:/WeChat/WeChatFiles/002/Files/b.txt"},
{"sn" : "XASDF324FRWGDSV6GAA","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:38","ulPath" : "D:/WeChat/WeChat Files/002Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/WeChat Files/002/Files/a.txt","szNewPathName" : "D:/WeChatWeChat Files/002Files/b.txt"},

已上纯手敲!如有错漏之处,欢迎指正!

 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kristianke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值