elasticsearch 使用logstash更新elastic中的多个记录,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 使用logstash更新elastic中的多个记录,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

elasticsearch 使用logstash更新elastic中的多个记录

elasticsearch 使用logstash更新elastic中的多个记录,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration,嗨,伙计,我对使用logstash更新elastic中的多个记录有问题。 我的日志存储配置如下 output { elasticsearch { hosts => "******" user => "xxxxx" password => "yyyyyy" index => "index_name" document_type => "doc_type" acti

嗨,伙计,我对使用logstash更新elastic中的多个记录有问题。 我的日志存储配置如下

output {
    elasticsearch {
        hosts => "******"
        user => "xxxxx"
        password => "yyyyyy"
        index => "index_name" 
        document_type => "doc_type"
        action => "update"          
        script_lang => "painless"
        script_type => "inline"
        document_id => "%{Id}"
        script => 'ctx._source.Tags = params.event.get("Tags");'
    }
}

我对logstash转储文件夹的输出如下所示:
{“索引名称”:“提要名称”,“文档类型”:“文档类型”,“Id”:[“b504d808-f82d-4eaa-b192-446ec0ba487f”,“1bcbc54f-fa7a-4079-90e7-71da527f56a5”],“es操作”:“更新”,“标记”:[“标记1”,“标记2”}

我这里最大的问题是,我不能一次更新这两个记录,但我需要创建两个记录,每个记录具有不同的ID

为什么要通过在输出配置中编写查询来解决这个问题? 在sql中,看起来是这样的:

Update Table 
SET Tags
WHERE ID in (guid1, guid2)

我知道在这种情况下,我可以在logstash中添加两条记录并解决问题,但我需要解决第二个问题,即我需要替换具有一个tag1的所有记录并将其设置为新Tag。

您是否考虑过使用,以便在每个事件都具有一个id的事件中克隆事件?看来过滤器能帮你