閲覧いただきありがとうございます。
タイトルにある通りです。
現状、設定の不備か、何等かの理由でS3にログがアップロードされません。
私自身、Fluentdを使用するのが今回初めてで、
fluent.confの設定が間違っている可能性が高いです。。
簡単に環境をご説明させていただきますと以下の構成となります。
・nginxコンテナとFluentdコンテナをDocker composeで立ち上げる
・ローカルにバインドマウントしたnginxのaccess.logをFluentd経由でS3にアップロード
マウントしているローカルのaccess.logにはログが出力されていることを確認しています。
ディレクトリ構成は以下の通りです。
┬ fluentd │ ├ config │ │ └ fluent.conf (3) │ └ Dockerfile (2) ├ nginx │ ├ config │ │ └ nginx.conf │ ├ html │ │ └ index.html │ ├ log │ │ ├ s3 │ │ ├ access.log │ │ ├ access.log.pos │ │ └ error.log │ └ Dockerfile └ docker-compose.yml (1)
以下、関連のありそうなファイルを記載させていただいております。
(上記ディレクトリに項番があるもの)
おかしな点ございましたらご指摘いただけると幸いです。
(1)~/docker-compose.yml
version: "3.3" services: nginx: build: ./nginx volumes: - ./nginx/config/nginx.conf:/etc/nginx/nginx.conf - ./nginx/log:/var/log/nginx - ./nginx/html:/usr/share/nginx/html ports: - 8090:80 links: - fluentd fluentd: build: ./fluentd volumes: - ./fluentd/config:/fluentd/etc - ./nginx/log:/var/log/nginx ports: - "24224:24224"
(2)~/fluentd/Dockerfile
FROM fluent/fluentd:v1.3.2-1.0 RUN gem install fluent-plugin-elasticsearch fluent-plugin-s3 fluent-plugin-secure-foward
(3)~/fluentd/config/fluent.conf
<source> @type tail format nginx path /var/log/nginx/access.log tag nginx pos_file /var/log/nginx/access.log.pos </source> <match nginx> @type s3 aws_key_id XXXX aws_sec_key XXXX s3_bucket XXXX s3_region ap-northeast-1 path logs/ s3_object_key_format %{path}%{time_slice}_%{index}.%{file_extension} <buffer tag,time> @type file path /var/log/nginx/s3 timekey 3600 timekey_wait 10m timekey 60 timekey_wait 60 chunk_limit_size 256m </buffer> </match>