fluentdのHTTP OUTPUTって、意外と使われてないのか、
マニュアルを見たのですが、ちょっと引っかかったので、
備忘録がてら設定晒そうかと。
(fluentd http out の公式マニュアル)
https://docs.fluentd.org/output/http
とりあえず、設定です。
なおバージョンは、1.16.2です。
<source>
@type forward
port 24224
</source>
<match **>
@type http
endpoint http://host.docker.internal:8080/Store/${tag}
http_method post
json_array false
open_timeout 3
read_timeout 3
retryable_response_codes [503]
<format>
@type json
</format>
<buffer tag>
@type file
path /fluentd/log/transfer/buffer/
chunk_limit_size 1m
retry_wait 10s
retry_max_times 3
flush_mode interval
flush_interval 1m
flush_at_shutdown true
</buffer>
</match>
endpointに${tag}という変数を使う場合、
bufferに書かないといけないというのがまずつまりました。(必須というのがわからんかった)
あとは、endpointに環境変数とかも使えるのかと思いきや、どうやら使えないようで、
このあたりも同時にハマったポイントでした。
その他、いつのバージョンからか、bufferの書き方もかなり変わっており、
このあたりもマニュアル見つつ、動かしながら確認しました。
fluentdはバージョンアップすると、結構書き方が変わっていたり、
パラメータが変更になっていたりと、なかなか注意が必要です。
とはいえ、相変わらず重宝しているfluentdです。
ちなみに、個人的に作成しているFluentNettingなんてものもあります。
https://www.nuget.org/packages/FluentNetting/
こいつはFORWARD OUPUTを受信するサーバですが、
ヘルスチェックなんかも持っているので、おすすめです。
以上