我正在Ubuntu 16.0中使用5.5版本的麋鹿堆栈
我的日志坏了,无法正确写入弹性文件,导致json.erros
如下所示
Error decoding JSON: invalid character 'e' in literal null (expecting 'u')"
非常频繁地获取json.errors,并且这些日志未正确读入或写入Elasticsearch吗?
每5到10分钟就会发生一次。请帮我解决。
screenshot of broken logs in kibana
我的示例日志是:
{"log":"2019-10-01 07:18:26:854*[DEBUG]*cluster2-nio-worker-0*Connection*userEventTriggered*Connection[cassandraclient/10.3.254.137:9042-1, inFlight=0, closed=false] was inactive for 30 seconds, sending heartbeat\n","stream":"stdout","time":"2019-10-01T07:18:26.85462769Z"}
答案 0 :(得分:1)
由于您已经说过json日志打印得不好,所以我认为输入配置的多行设置会引起问题。
在我看来,当您以json格式记录日志时,不需要任何多行设置,而且的打印效果不是很好,这意味着整个json对象(=日志事件)都写在一行中
您已经指定
json.message_key:日志
这完全可以完成工作。
所以总结一下:
删除多行设置,然后重试。您的配置应如下所示:
filebeat.inputs:
- type: log
paths:
- "/var/log/containers/*.log"
tags: ["kube-logs"]
symlinks: true
json.message_key: log
json.keys_under_root: true
json.add_error_key: true