Edited at

Proxyサーバ経由でfluentdからS3にログを保存する

More than 1 year has passed since last update.


はじめに

最近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でバッチで転送しても良いんだろうな~と思いました。