はじめに
前回の記事でFluentdでアップロードする際にS3のパスをタグで動的に変更してアップロードする方法を検証しました。
今度は日付を使って動的に変更する方法を検証します。
前回
capybara-engineer.hatenablog.com
日付をパスに使用する方法は以下のURLのExample Configuration部分に記載されています。
s3 - Fluentd
# 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.
#パス/ s3_object_key_formatで$ {tag}または%Y /%m /%d /のような構文を使用する場合、 #<buffer>引数で$ {tag}のタグと%Y /%m /%dの時間を指定する必要があります。
実施内容
- conf設定
- TEST実施
実施手順
conf設定
前回使用したconfをベースに設定します。
日付を設定する記載を追加しました。
<source> @type tail path C:\Apache24\logs\access.log pos_file C:\var\log\td-agent\apache24.access_log.pos <parse> @type apache2 </parse> tag s3.apache.access </source> <match s3.*.*> @type s3 <assume_role_credentials> role_arn arn:aws:iam::************:role/test-bation role_session_name test-bation </assume_role_credentials> s3_bucket test-tmp-20200128 s3_region ap-northeast-1 path logs s3_object_key_format %{path}/%{time_slice}/${tag[1]}.%{file_extension} time_slice_format year=%Y/month=%m/day=%d overwrite true <buffer tag,time> @type file path C:\var\log\td-agent\s3 timekey 3m # 3 min timekey_wait 10m chunk_limit_size 256m compress gzip </buffer> </match>
所感
Fluentdで取得した日付の情報を使用して、パスを設定することができました。
今更ですが、S3上のフォルダもFluentdが作成してくれるのは楽ですね。