gpt4 book ai didi

elasticsearch - 提取管道中我的文档字段的类型是什么?

转载 作者:行者123 更新时间:2023-12-02 22:35:19 25 4
gpt4 key购买 nike

我有一个Docker-> Filebeat-> Elasticsearch管道用于日志。

我正在使用Elasticsearch提取管道来处理我的日志(在Filebeat发送日志之后)。

在我的日志中,有一个消息字段和有效负载字段。这是有趣的部分:

有效负载有时是对象,有时是字符串。

现在,ES显然将不允许这种类型的映射冲突,因此,每天进入索引的任何内容每天都会进入,而另一种类型将无效并引发错误。我想通过以下方式处理:

  • 检查有效载荷字段的类型
  • 如果是字符串,则嵌套到有效负载中。文本字段

  • 我不知道如何进行“嵌套”,也没有找到类型来检查有效载荷字段的方法。

    完全不支持吗?我是否必须为此添加Logstash?还是可以在Filebeat方面解决?

    编辑:提到摄取管道

    最佳答案

    在摄取节点内,您将创建GROK过滤器,并根据找到的模式确定将值放置在何处。

    请记住,如果要强制使用字段类型,则可以使用以下结构:

    %{FAVORITE_DOG:pet:int}
    %{FAVORITE_DOG_text:pet:string}

    例如,如果您想解析一个字段并根据类型决定放入两个不同的字段。在这里,我定义了两种不同的模式:
    P1(For integers): "My value is=%{NUMBER:my_variable_int:int}"
    P2(For text):"My value is=%{WORD:my_variable_text:string}

    ps.:%{NUMBER}和%{WORD}是常见的REGEX规则

    ps2 .:顺序很重要,请尝试将整数放在第一位,因为该字符串将始终被识别...

    例:
    log1: "My value is=10"
    log2: "My value is=SOME_TEXT"


    {
    "description" : "...",
    "processors": [
    {
    "grok": {
    "field": "message",
    "patterns": ["My value is=%{NUMBER:my_variable_int:int}","My value is=%{WORD:my_variable_text:string}"]
    }
    }
    ]
    }

    来源: https://www.elastic.co/guide/en/elasticsearch/reference/master/grok-processor.html

    关于elasticsearch - 提取管道中我的文档字段的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57304223/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com