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

やりたいこと

やりたいこと…

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

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

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

さて、どうするか

必要なもの

  • Amazon S3
  • fluent-plugin-s3

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

td-agent.conf

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


    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

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

助かりました

まじで。

元記事は、こちらです。