elasticsearch,amazon-cloudwatch,functionbeat,Json,elasticsearch,Amazon Cloudwatch,Functionbeat" /> elasticsearch,amazon-cloudwatch,functionbeat,Json,elasticsearch,Amazon Cloudwatch,Functionbeat" />

通过Cloud Watch将结构良好的JSON数据导入ElasticSearch

通过Cloud Watch将结构良好的JSON数据导入ElasticSearch,json,elasticsearch,amazon-cloudwatch,functionbeat,Json,elasticsearch,Amazon Cloudwatch,Functionbeat,是否有已知的科学可以通过Cloud Watch将记录的JSON数据导入Elasticsearch实例以及结构良好的JSON 也就是说,我在Amazon Lambda函数执行期间记录JSON数据 这些数据可以通过亚马逊的云观察服务获得 我已经能够将这些数据导入到弹性搜索实例中,但这些数据是以非结构化消息的形式出现的 "_source" : { "@timestamp" : "xxx",

是否有已知的科学可以通过Cloud Watch将记录的JSON数据导入Elasticsearch实例以及结构良好的JSON

也就是说,我在Amazon Lambda函数执行期间记录JSON数据

这些数据可以通过亚马逊的云观察服务获得

我已经能够将这些数据导入到弹性搜索实例中,但这些数据是以非结构化消息的形式出现的

        "_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\u us
字段、
bar
字段等,而不是一个纯文本
消息
字段


似乎有几种不同的方法可以做到这一点,但我想知道,使用elastic的默认工具,这类事情是否有一条很好的道路,或者我是否注定要再进行一次一次性的黑客攻击。

Functionbeat是一个很好的起点,它将允许您尽可能保持“无服务器”

要处理JSON,可以使用

问题是,您的
消息
实际上不是JSON。我能想到的可能解决方案:

  • 提取JSON消息并将其传递到Functionbeat中的
    decode\u JSON\u字段
    。我想知道是否
    trim_chars
    不会因为这个而被滥用-修剪任何可能的字符,除了大括号
  • 如果这还不够的话,你可以做所有的处理,你可能会用一个,然后是一个,把它缝合在一起
  • 如果可以,只记录一条JSON消息,以简化您的生活;可能会将日志级别移动到JSON结构中
  • 谢谢@xeraa——grok处理器对我来说是新的,似乎它正是我想要的。另外,re:“如果可以的话,只记录一条JSON消息,以简化您的生活”——不幸的是,我正在处理的额外非JSON数据似乎是由CloudWatch添加的,超出了我的控制范围。