elasticsearch 如何使用带有logstash elaticsearch输出更新功能的摄取管道,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch 如何使用带有logstash elaticsearch输出更新功能的摄取管道,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch 如何使用带有logstash elaticsearch输出更新功能的摄取管道

elasticsearch 如何使用带有logstash elaticsearch输出更新功能的摄取管道,elasticsearch,logstash,elasticsearch,Logstash,我正在使用Logstash Elasticsearch输出将数据发布到Elasticsearch。合并两个记录以从请求和响应创建单个记录。这段代码没有问题 elasticsearch { hosts => [ "localhost:9200" ] index => "transactions" action => "update" doc_as_upsert => true document_

我正在使用Logstash Elasticsearch输出将数据发布到Elasticsearch。合并两个记录以从请求和响应创建单个记录。这段代码没有问题

elasticsearch {
  hosts => [ "localhost:9200" ]
  index => "transactions"
  action => "update"
  doc_as_upsert => true
  document_id => "%{tid}"
  script =>'
    if(ctx._source.transaction=="request"){
      ctx._source.status = params.event.get("status");
    }else if(ctx._source.transaction=="response"){                           
      ctx._source.api = params.event.get("api");                            
    }
}
现在,我正试图添加一个新字段,使用摄取管道更新上述记录

PUT _ingest/pipeline/ingest_pipe2
{
  "description" : "describe pipeline",
  "processors" : [
    {
      "set" : {
        "field": "api-test",
        "value": "new"
      }
    }
  ]
}
这将向传入事件添加一个新字段。它可以与下面的代码配合使用

elasticsearch {
  hosts => [ "localhost:9200" ]
  index => "transactions"
  pipeline => "ingest_pipe2"  
}
问题是日志存储更新和摄取管道更新不能一起工作

elasticsearch {
  hosts => [ "localhost:9200" ]
  index => "transactions"
  pipeline => "ingest_pipe2"**
  action => "update"
  doc_as_upsert => true
  document_id => "%{tid}"
  script =>'
    if(ctx._source.transaction=="request"){
      ctx._source.status = params.event.get("status");
    }else if(ctx._source.transaction=="response"){                           
      ctx._source.api = params.event.get("api");                            
    }
}

不可能将摄取管道用于

不支持将摄取管道与doc_as_upsert一起使用

您可以找到更多信息和