はじめに
最近AWSを触っていて色々検証中。
今回Proxyサーバ経由でfluentdからS3にログを転送してみたのでメモとして残しておきます。
環境
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
$ docker -v
$ td-agent --version
td-agent 0.12.40
準備
下記が完了していることが前提です。
1.S3バケットの準備
2.td-agentとoutput_s3のプラグインインストール
3.forwarder側の設定
aggregator側の設定
$ sudo vi /etc/td-agent/td-agent.conf
<match **.access_log>
type copy
<store>
type s3
aws_key_id XXXXXXXXXX
aws_sec_key XXXXXXXXXX
s3_bucket XXXXXXXXXX
s3_region ap-northeast-1
path td-logs/
flush_interval 60s
time_slice_format %Y%m%d%H
time_slice_wait 10m
buffer_path /var/log/td-agent/s3
buffer_chunk_limit 128m
buffer_queue_limit 256m
retry_limit 10
retry_wait 5s
proxy_uri http://<<proxy-server>>:<<port>>
</store>
</match>
$ sudo service td-agent configtest
td-agent [ OK ]
$ sudo service td-agent reload
Reloading td-agent configuration (via systemctl): [ OK ]
これでProxyサーバ経由でもS3にログを無事に転送出来ました。
proxy_uriにProxyサーバのIPとポートを指定するだけでした。
EC2内であればIAMポリシーで許可するかと思いますが、
EC2外の場合はaws_key_idとaws_sec_keyの取り扱いは注意ですね。
細かいパラメーターは下記や公式ドキュメントを参考にしました。
https://qiita.com/munazo/items/d665e2c4e86f42d06cf7
無事S3に保管出来ましたが、
保管するだけならaws cliでバッチで転送しても良いんだろうな~と思いました。