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
<source> type tail format apache pos_file /var/log/td-agent/httpd-access.log.pos path /var/log/httpd/access_log tag apache.access </source> <match apache.access> 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 </match>
これを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のコンテンツにアクセスしてしばらくたつと、、、
無事出力されていました!
これの何がいいかというと、
- 各サーバーに共通の設定ファイルなどを外部化しておき、一括変更をかけられる (再起動は必要ですが、定期的に再起動をかけるようにしておくという手もあります)
- いっそ全設定を外出しして完全に外部で管理する
などが可能になります。
以上です。