通过CloudWatch将结构良好的json数据导入elasticsearch

w9apscun  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(1)|浏览(396)

有没有已知的科学可以让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 现场。
似乎有一些不同的方法可以做到这一点,但我想知道,是否有一个良好的道路,这类事情使用弹性的默认工具,或者如果我注定要一次以上的一次性黑客。

iswrvxsc

iswrvxsc1#

functionbeat是一个很好的起点,它允许您尽可能地保持“无服务器”。
要处理json,可以使用 decode_json_fields 处理器。
问题是你的 message 但不是真正的json。我能想到的可能解决方案:
dissect 提取json消息并将其传递给 decode_json_fields -都在节拍里。我想知道 trim_chars 不能被滥用-修剪任何可能的字符除了大括号。
如果这还不够,您可以在elasticsearch的摄取管道中完成所有处理,您可以使用grok处理器和json处理器将其缝合在一起。
如果可以的话,只记录一条json消息,让你的生活更简单;可能会将日志级别移动到json结构中。

相关问题