有没有已知的科学可以让json数据通过cloudwatch导入到elasticsearch示例中以及结构良好的json?
也就是说——我在amazon lambda函数执行期间记录json数据。
这些数据可以通过亚马逊的云监控服务获得。
我已经能够使用 functionbeat
,但数据以非结构化消息的形式传入。
"_source" : {
"@timestamp" : "xxx",
"owner" : "xxx",
"message_type" : "DATA_MESSAGE",
"cloud" : {
"provider" : "aws"
},
"message" : ""xxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx INFO {
foo: true,
duration_us: 19418,
bar: 'BAZ',
duration_ms: 19
}
""",
我要做的是把一个文档索引到一个有 foo
现场, duration_us
现场, bar
字段等,而不是具有纯文本的字段 message
现场。
似乎有一些不同的方法可以做到这一点,但我想知道,是否有一个良好的道路,这类事情使用弹性的默认工具,或者如果我注定要一次以上的一次性黑客。
1条答案
按热度按时间iswrvxsc1#
functionbeat是一个很好的起点,它允许您尽可能地保持“无服务器”。
要处理json,可以使用
decode_json_fields
处理器。问题是你的
message
但不是真正的json。我能想到的可能解决方案:一
dissect
提取json消息并将其传递给decode_json_fields
-都在节拍里。我想知道trim_chars
不能被滥用-修剪任何可能的字符除了大括号。如果这还不够,您可以在elasticsearch的摄取管道中完成所有处理,您可以使用grok处理器和json处理器将其缝合在一起。
如果可以的话,只记录一条json消息,让你的生活更简单;可能会将日志级别移动到json结构中。