fluentdのドキュメントに以下のような記載がありました。
Configuration File – (3) Include Directive
# absolute path
include /path/to/config.conf# if using a relative path, the directive will use
# the dirname of this config file to expand the path
include extra.conf# glob match pattern
include config.d/*.conf# http
include http://example.com/fluent.conf
最後の行より、HTTPから設定ファイルを取得してインクルードできるようです。
そこで試してみました。
■common.conf
type s3
aws_key_id xxxxxxxxxxxxxxxxxxx
aws_sec_key yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
s3_bucket hoge-bucket
path logs/
buffer_path /var/log/fluent/s3
flush_interval 10s
これをS3にアップロードしてWEBホスティングしてみます。
そして、EC2では以下のように設定します。
■/etc/td-agent/td-agent.conf
include http://s3-ap-northeast-1.amazonaws.com/hoge-bucket/conf/fluentd/common.conf
# /etc/init.d/td-agent start
httpdのコンテンツにアクセスしてしばらく経つと
無事出力されていました!
これの何がいいかというと、
- 各サーバーに共通の設定ファイルなどを外部化しておき、一括変更をかけられる (再起動は必要ですが、定期的に再起動をかけるようにしておくという手もあります)
- いっそ全設定を外出しして完全に外部で管理する
などが可能になります。
こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら