Я пытаюсь использовать http_poller для получения данных из ElasticSearch и записи их в другой ES. При этом запрос ES необходимо выполнять как запрос POST. В приведенных примерах я не смог найти параметры, которые нужно использовать для публикации тела, и это относилось к мантикору-клиенту от ruby. Исходя из этого, я использовал параметр params для публикации тела.
Компонент http_poller выглядит так
input {
http_poller {
urls => {
some_other_service => {
method => "POST"
url => "http://localhost:9200/index-2016-03-26/_search"
params => '"query": { "filtered": { "filter": { "bool": { "must": [ { "term": { "SERVERNAME": "SERVER1" }}, {"range": { "eventtime": { "gte": "26/Mar/2016:13:00:00" }}} ]}}} }"'
}
}
# Maximum amount of time to wait for a request to complete
request_timeout => 300
# How far apart requests should be
interval => 300
# Decode the results as JSON
codec => "json"
# Store metadata about the request in this key
metadata_target => "http_poller_metadata"
}
}
output {
stdout {
codec => json
}
}
Когда я выполняю это, Logstash выдает ошибку, ошибка: имя не может быть нулевым {: level =>: error}
Любая помощь приветствуется.
У меня есть предположение, что параметры должны быть действительно парами ключ-значение, но тогда вопрос заключается в том, как опубликовать запрос с помощью logstash.
Я сослался на эту ссылку, чтобы получить доступные параметры для HTTP-клиента https://github.com/cheald/manticore/blob/master/lib/manticore/client.rb