繁体   English   中英

如何将摄取管道与 logstash elaticsearch output 更新功能一起使用

[英]How to use ingest pipeline with logstash elaticsearch output update feature

我正在使用 Logstash Elasticsearch output 将数据发布到 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"  
}

问题是logstash 更新和摄取管道更新不能一起工作。

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一起使用

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

你可以在这里这里找到更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM