[英]Fluentd, multi-level nested escaped JSON strings inside JSON
I'm trying to parse logs from third-party application - which I cannot change - in order to send it to elastic.我正在尝试解析来自第三方应用程序的日志 - 我无法更改 - 以便将其发送到弹性。 Here is pseudo-code of log structure:
这是日志结构的伪代码:
{
"field": "value",
"otherField" : "{\field\": {\"innerfield\":123123}}\r",
(...)
}
After this documentation and after attempt to use this plugin and many, many other solution, I've stack on it.在此文档之后,并在尝试使用此插件和许多其他解决方案之后,我已经开始使用它。
My goal is to have it in form:我的目标是让它的形式:
{
"field": "value",
"otherField" : {
"field": {
"innerfield":123123
}
}",
(...)
}
Try followings:尝试以下操作:
<source>
@type dummy
tag dummy
dummy [
{"name": "value", "json": "{\"foo\": \"bar\", \"baz\": 1}"},
{"name": "value", "json": "{\"foo\": \"bar\", \"baz\": 2}"},
{"name": "value", "json": "{\"foo\": \"bar\", \"baz\": 3}"},
{"name": "value", "json": "{\"foo\": \"bar\", \"baz\": 4}"},
{"name": "value", "json": "{\"foo\": \"bar\", \"baz\": 5}"}
]
</source>
<filter dummy>
@type parser
key_name json
reserve_data true
remove_key_name_field true
hash_value_field parsed
<parse>
@type json
</parse>
</filter>
<match dummy>
@type stdout
</match>
The result:结果:
2019-04-09 12:19:35.042904619 +0900 dummy: {"name":"value","parsed":{"foo":"bar","baz":1}}
2019-04-09 12:19:36.044483191 +0900 dummy: {"name":"value","parsed":{"foo":"bar","baz":2}}
2019-04-09 12:19:37.046293186 +0900 dummy: {"name":"value","parsed":{"foo":"bar","baz":3}}
2019-04-09 12:19:38.048007580 +0900 dummy: {"name":"value","parsed":{"foo":"bar","baz":4}}
See the latest document: https://docs.fluentd.org/v1.0/articles/filter_parser#reserve_time查看最新文档: https : //docs.fluentd.org/v1.0/articles/filter_parser#reserve_time
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.