質問: fluentd の in_http プラグインを利用して、 json ファイルを送り、elasticsearch に登録したいと考えております。 現状、以下のような json ファイルを扱おうとしています。 ``` { "user_id" : 0, "time" : 0, "data" : [ { "data0" : 0.0, "data1" : 0.1 }, { "data0" : 0.0, "data1" : 0.2 } ] } ``` 1つのデータとしては無事登録されることを確認できました。 ただ、"data" 配列の各要素はそれぞれ別のidとして登録したいので、 bulkAPI を利用できるように、 ``` { "index" : { "_index" : , "_type" : , "_id" : } } { "user_id" : 0, "time" : 0, "data" : { "data0" : 0.0, "data1" : 0.1 } } { "index" : { "_index" : , "_type" : , "_id" : } } { "user_id" : 0, "time" : 0, "data" : { "data0" : 0.0, "data1" : 0.2 } } ``` のような形に変換して elasticsearch に投げる方法を検討しています。 その実装について、 ・index_name/type_name を http の POST で fluentd に渡す方法 ・bulkAPI 形式に fluentd 上で変換する方法 が分からず困っている状態です。 fluentd-elasticsearch で bulkAPI 形式で登録する手順について、 良い方法をご存じの方がいらっしゃいましたら、ご教示頂きたく思います。 よろしくお願いいたします。 なお、各種バージョンは以下のとおりです。 OS : CentOS Linux release 7.5.1804 (Core) td-agent : 2.3.6 elasticsearch : 5.5.3
回答: fluent-plguin-elasticsearch を使ってください。 in_http はFluentdがHTTPリクエストを受けられるようにするものなので用途が異なります。