内容
td-agent3(Fluentd v1.0)でS3にログを保存する では td-agent3
(Fluentd v1.0
)で Apache
のログを、 S3
に保存しました
今回は、「LTSV形式ログ」を保存する設定について記します
準備
td-agent3(Fluentd v1.0)でS3にログを保存する を一通り設定した状態にする
設定の例
LTSV形式のログについて
(例ということでかなりてきとーなものです)
-
/tmp/ltsv.log
に出力される - ログのフォーマットは
datetime:%Y-%m-%d %H:%M:%S<TAB>id:数値のID
- 例:
datetime:2018-03-05 07:48:33<TAB>id:697
-
$ printf "datetime:$(date "+%Y-%m-%d %H:%M:%S")\tid:$RANDOM\n" >> /tmp/ltsv.log
で出力します
- 例:
設定ファイル
/etc/td-agent/td-agent.conf
# <source> の内容が本題
<source>
@type tail
path /tmp/ltsv.log
tag ltsv.log
pos_file /var/log/td-agent/ltsv-log.pos
<parse>
@type ltsv
</parse>
</source>
# <match> についての詳細は割愛
<match ltsv.log>
@type s3
aws_key_id YOUR_AWS_KEY_ID
aws_sec_key YOUR_AWS_SECRET_KEY
s3_bucket YOUR_S3_BUCKET_NAME
s3_region us-east-1
path logs/${tag}/%Y-%m-%d/
s3_object_key_format %{path}%{time_slice}_%{index}.%{file_extension}
# if you want to use ${tag} or %Y/%m/%d/ like syntax in path / s3_object_key_format,
# need to specify tag for ${tag} and time for %Y/%m/%d in <buffer> argument.
<buffer tag,time>
@type file
path /var/log/td-agent/s3
timekey 60
timekey_wait 60
chunk_limit_size 256m
</buffer>
</match>
動作確認
以上の設定例で td-agent
を起動してログ(/var/log/td-agent/td-agent.log
)を確認します。
特に問題がなさそうであれば
$ while true ; do printf "datetime:$(date "+%Y-%m-%d %H:%M:%S")\tid:$RANDOM\n" >> /tmp/ltsv.log && sleep 10; done
などで「LTSV形式のログ」を出力して、S3にログがたまっていくか確認します。
ログデータの確認
S3に以下のようなテキストのログがたまっていきました
YOUR_S3_BUCKET_NAME/ltsv.log/2018-03-16/201803160439_0.gz
2018-03-16T04:39:32+00:00 ltsv.log {"datetime":"2018-03-16 04:39:32","id":"8204"}
2018-03-16T04:39:42+00:00 ltsv.log {"datetime":"2018-03-16 04:39:42","id":"13831"}
2018-03-16T04:39:52+00:00 ltsv.log {"datetime":"2018-03-16 04:39:52","id":"14953"}
まとめ
- 「LTSV形式のログ」を
parse
できました -
td-agent3
(Fluentd v1.0
)でS3
に「LTSV形式のログ」を保存できました