share facebook facebook2 twitter menu hatena pocket slack

2014.08.13 WED

fluent-plugin-s3 でログを日付毎のディレクトリに置きたい場合にやること

川原 洋平

WRITTEN BY川原 洋平

手短に…かっぱ@inokara) です。

やりたいこと

やりたいこと…

  • fluent-plugin-s3 を使っていてバケット以下でディレクトリを作って更にその配下に日付毎のログを保存したい

以下のような感じでログを保存したいと思います。

${BUCKET}/logs/YYYYMMDD/YYYYMMDD-H.gz

さて、どうするか

必要なもの

  • Amazon S3
  • fluent-plugin-s3

fluent-plugin-s3 のインストール方法とか割愛。

td-agent.conf

以下のように書きました。

<match hoge>
    type s3
    aws_key_id AKxxxxxxxxxxxxxxxxxxxxxxx
    aws_sec_key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    s3_bucket ${BUCKET}
    s3_endpoint s3-ap-northeast-1.amazonaws.com
    ## s3_object_key_format %{path}%{time_slice}/%{index}.%{file_extension}
    path logs/
    buffer_path /var/log/td-agent/s3

    time_slice_format %Y%m%d/%Y%m%d-%H.log
    ##time_slice_format %Y%m%d-%H%M/%Y%m%d-%H-%M-%S.log
    time_slice_wait 10m
</match>

time_slice_format を %Y%m%d-%H%M/%Y%m%d-%H-%M-%S.log な感じで書くと…

${BUCKET}/logs/YYYYMMDD-HM/YYYYMMDD-H-M-S.log_0.gz

って感じで S3 に保存されます。但し、かなり短い間隔で S3 に put することになるのでお財布と相談しましょう。

ちなみに…

上記の設定の場合にはバッファのファイル名は以下のようになります。

s3.20140812%2F20140812-10.log.b50064cb9581dfbcb.log

fluent-plugin-forest を使えばこのバッファファイル名も動的に生成出来るのかしら…。とりあえず日付毎にディレクトリ切れたのでまた今度考えることにします。

助かりました

まじで。

元記事は、こちらです。