1

我想从logstash更新我的文档/登录elasticsearch的一个字段。

我的logstash conf文件

input { 
    http {
    host => "127.0.0.1" # default: 0.0.0.0
    port => 31311 # default: 8080
  }
}

output { 
  stdout { codec => json },
  elasticsearch {
        action => "update"
        bind_host => "127.0.0.1"
        bind_port => 9200
        document_id => "ET00009682"
        index => "in12"
        type => "event"
  }
}

我想将我的计数字段增加一,如何在我的 logstash 输出中指定它。

注意:我知道要更新我需要使用这个脚本

"script" : "ctx._source.count += 1"

但我不确定将它放在logstash的输出中的什么位置?

请帮忙谢谢

4

3 回答 3

3

你可以用conf做到这一点:

output { 
  stdout { codec => json },
  elasticsearch {
        action => "update"
        bind_host => "127.0.0.1"
        bind_port => 9200
        document_id => "ET00009682"
        index => "in12"
        type => "event"
        doc_as_upsert => true
        script => "ctx._source.count += 1"
        script_lang => "groovy"
        script_type => "inline"
  }
}
于 2016-08-26T01:46:36.250 回答
0

您需要在有计数器的地方使用指标过滤器:https ://www.elastic.co/guide/en/logstash/current/plugins-filters-metrics.html

filter {
  metrics {
    meter => [ "thing" ]
    add_tag => "metric"
  }
}

您将收到一个字段名称:thing.count 这将是您的计数字段

于 2015-08-25T07:56:13.693 回答
0

所以我所做的是从logstash的输出中触发一个curl请求来实现这一点。

于 2015-08-26T09:48:40.457 回答