Let*_*zee 5 json elasticsearch logstash kibana filebeat
我用来filebeat将日志写入elasticsearch服务器。我的日志是json格式的。每行都是一个 json 字符串,如下所示
{"@timestamp": "2017-04-11T07:52:480,230", "user_id": "1", "delay": 12}
Run Code Online (Sandbox Code Playgroud)
我希望@timestamp日志中的字段替换@timestampfilebeat 在读取日志时创建的字段。在我的 kibana 仪表板上我总是得到
json_error:@timestamp 未覆盖(2017-04-11T07:52:48,230 解析错误)
最后看到@timestampfilebeat 创建的字段
我的 filebeat conf 包含有关覆盖字段的那些行
json.keys_under_root: true
json.overwrite_keys: true
json.add_error_key: true
Run Code Online (Sandbox Code Playgroud)
另外,从我的log4jconf中@timestamp,我的日志中创建的字段是ISO8601格式化的。知道问题是什么以及为什么该@timestamp字段没有被覆盖吗?
问题在于生成的时间戳的格式log4j。"2017-04-11T09:38:33.365Z"Filebeat 期望其必须T在末尾中间采用某种形式Z,并在毫秒之前使用点而不是逗号。
我发现最快(而且有点脏)的方法是使用以下模式
pattern='{"@timestamp": "%d{YYYY-MM-dd}T%d{HH:mm:ss.SSS}Z"}
Run Code Online (Sandbox Code Playgroud)
可以在这里找到类似的问题。建议的解决方案并不能解决 filebeat 问题,因为它使用逗号!
| 归档时间: |
|
| 查看次数: |
5193 次 |
| 最近记录: |