我的应用程序以
之类的json格式登录 {"verified": true, "id": 42, "date": "bla"}
,我想将其作为带有文件信号(6.2.4)的json转发。 但是,由于应用程序在docker内部运行,因此该日志将写入:/ pv / lib / docker / containers // _ json.log
{"log":"{\"verified\": true, \"id\": 42, \"date\": \"bla\"}\r\n","stream":"stdout","time":"2018-08-10T08:13:53.219511878Z"}
因此,现在有一个带有字符串值的json元素log
。
filebeat解析docker-log文件时,log
值的内容被解释为简单的字符串,并且filebeat产生以下输出:
...
"log": "{\"verified\": true, \"id\": 42, \"date\": \"bla\"}",
"time": "2018-08-10T09:00:15.038787209Z",
"stream": "stdout",
...
是否可以在filebeat中解析字段“ log”,以便filebeat输出包含json元素verified
,id
和date
。
这是我的配置:
filebeat.autodiscover:
providers:
- type: docker
templates:
- condition:
contains.docker.container.image: logprod
config:
- type: log
paths:
- /var/lib/docker/containers/${data.docker.container.id}/*.log
json.message_key: log
json.add_error_key: true
json.keys_under_root: true
output.console:
enabled: true
pretty: true