2016-03-28 25 views
2

http_pollerを使用してElasticSearchからデータを取得し、別のESに書き込もうとしています。これを実行している間、ESクエリはPOSTリクエストとして実行する必要があります。 提供された例では、本文を投稿するために使用されるパラメータを見つけることができず、それはマンティコアクライアントにルビーを参照しました。それに基づいて、bodyを投稿するためにparamsパラメータを使用しました。Logstash http_pollerの投稿で名前が見つかりません。

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は、 エラーエラーを返すようになります名前がnullではないかもしれない{:レベル=>:エラー}

すべてのヘルプ感謝しています。

私が持っている推測は、実際にはキー値のペアでなければならないということですが、問題はlogstashを使用してクエリを投稿する方法です。

私は別のオプションを試したとき、私は答えを得たので、私はHTTPクライアント https://github.com/cheald/manticore/blob/master/lib/manticore/client.rb

答えて

1

で使用可能なオプションを取得するには、このリンクを参照、私は同様のソリューションを共有するだろうと思いました。

paramsを上記のペイロードのbodyに置き換えます。

HTTPポーラーを使用してポストを行うには、正しいペイロードが

input { 


http_poller { 
    urls => { 
     some_other_service => { 
     method => "POST" 
     url => "http://localhost:9200/index-2016-03-26/_search" 
     body=> '"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 
    } 
} 
です
関連する問題