matchで複数のアウトプットソースに保存したい時がある。
その場合はcopyプラグインを利用すると複数のアウトプットを指定できる。
今回の例ではファイルに書き出しつつ、1時間ごとにS3にApacheログファイルを送信している。
time_slice_format %Y%m%d_%H_apache.logがその設定であり、サイズがあふれない限り、このファイル名単位でS3に送信される。下記例では、年月日_時間_apache.logとなっていて、一時間単位でファイルをまとめてS3に送信する。time_slace_waitがその時間が終わったときに何分待つかという設定値だが、デフォルトは10分なので毎時10分過ぎにS3に送信される。
S3に送信される内容はfluentdのjson形式のファイルのようだ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # Apache log < source > type tail format apache path /var/log/httpd/blog_access_log tag apache.access pos_file /tmp/fluentd-apache .pos < /source > <match apache.access> type copy <store> type file path /var/tmp/apache .log < /store > <store> type s3 buffer_path /var/tmp/fluentd_s3 buffer_chunk_limit 100m #1chunkに保存できるデータサイズ上限 buffer_queue_limit 3 #1queueに保存できるchunk数の上限 retry_wait 30s #再送を実行するまでの待ち時間 retry_limit 5 #再送実施回数 aws_key_id "PUT YOUR AWS_KEY_ID" aws_sec_key "PUT YOUR AWS KEY" s3_region ap-northeast-1 s3_bucket バケット名 path logs/ #時間単位でログファイルを生成 time_slice_format %Y%m%d_%H_apache.log # デフォルトは10分待ってからアップする。 # time_slice_wait 1m < /store > < /match > |