Fluentd forwardを先の名前解決結果によって切り替える
やりたいこと
以下のような図で表されるような構成をとっている場合に、
aggregator A -> aggregator Bへのforward先切り替えを、名前解決によって行いたい。
検証
以下の様な設定でテスト
この設定をした上で名前解決されるIPを変更してみる。
結果は失敗。しばらく待ってみてもaggregator Aにforwardされ続けてしまう。
この辺りの実装を追うためにソースを確認。
処理を追っていくと怪しそうなのは以下のあたり
fluentd-0.10.39/lib/fluent/plugin/out_forward.rb
@expire_dns_cacheによってキャッシュの挙動がかわりそう。
肝心のexpire_dns_cacheの初期値は...
config_param :expire_dns_cache, :time, :default => nil # 0 means disable cache
nil。# persistent cache になる模様。
forwardの設定に
expire_dns_cache 0
を追加したら無事名前解決の変更を反映してくれるようになった。