我使用Logstash输出将数据发布到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");
}
}现在,我正在尝试添加一个新的字段,上面的记录更新使用ingest管道。
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更新和ingest管道更新都不能一起工作。
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");
}
}发布于 2020-08-10 05:01:07
https://stackoverflow.com/questions/63328861
复制相似问题