fluent で ローカル(無暗号)とリモート(暗号)のサーバに転送する方法
ログ集約のfluentネタです
LAN内に集約のfluentサーバ(A)が有って、普段はそこ経由でWANを経由し
大本の集約サーバ(B)へ転送
ただ、LAN内の集約サーバ(A)が死んでるときは、直接集約サーバ(B)に転送したい時はどうするか?と。
transport tlsを指定すると
serverセクション二つ書いても、両方ともtls必要になるし…って考えていくと
クライアント内で転送用の処理を別途書いてやって、それから転送すればいいと
エッセンシャルな部分だけ抜粋すると下記の感じ
LAN内の転送サーバが生きてる時にはそっちへ積極的に転送
それが出来なくなったらstandbyに指定されている自分自身の別のポート(24225)に転送
自分自身は別のポート(24225)に転送されてきたものは、
全部tlsでリモートサーバに転送する
<source>
@type forward
port 24224
</source>
<match *.**>
@type forward
require_ack_response true
heartbeat_type tcp
ignore_network_errors_at_startup true
<server>
host fluent-local-server
</server>
<server>
host ::1
port 24225
standby
</server>
</match>
<source>
@type forward
bind ::1
port 24225
@label @transfer
</source>
<label @transfer>
<match *.**>
@type forward
transport tls
require_ack_response true
heartbeat_type none
<server>
host fluent-remote-server
port 24228
</server>
<security>
self_hostname rpi4
shared_key 4aiJ7ofssveOvNRbClnpDew1DLLHkC
</security>
</match>
</label>