目的
- サーバが落ちたとき、アクセスログなどを損失させない(今回1時間に1回だから少しは仕方ないと判断しています)
- 後々解析でもできるようにする
- イメージで起動させた後から、ログを
S3
に保存し始めるため、Auto Scale
でも有効になる
- (Rails の logger で出力されるものを収集)
事前準備
セットアップ
td-agent のインストール
$ curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
conf 編集
$ sudo mkdir /var/log/td-agent/s3
$ sudo vi /etc/td-agent/td-agent.conf
<source>
type tail
path [保存したいログ]
pos_file /var/log/td-agent/buffer/sample_application.log.pos
format multiline
format_firstline /^.,/
format1 /^., \[(?<time>[^\.]+).+\][ ]+(?<level>[^ ]+) -- :(?<message>.*)$/
time_format %Y-%m-%dT%H:%M:%S
tag sample_application.access
</source>
<match sample_application.access>
type s3
output_tag false
output_time false
include_time_key true
include_tag_key true
time_format %Y-%m-%d %H:%M:%S
aws_key_id [AWS のアクセスキー]
aws_sec_key [AWS のシークレットキー]
s3_bucket [保存先バケット名]
s3_region [保存先リージョン名]
path [ログディレクトリ]/
buffer_path /var/log/td-agent/s3
time_slice_format "#{ENV['HOSTNAME']}/%Y%m%d/sample_application.log"
time_slice_wait 10m
flush_interval 1h
</match>
起動
$ sudo /etc/init.d/td-agent start
これも設定
$ sudo chkconfig td-agent on