diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d449e09..b38c344 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -20,3 +20,12 @@ services: volumes: - ./etc/scratchy/config.json:/app/config.json + fluentd: + build: ./fluentd + volumes: + - ./etc/fluentd:/fluentd/etc + links: + - "elasticsearch" + ports: + - "24224:24224" + - "24224:24224/udp" diff --git a/docker/etc/fluentd/fluent.conf b/docker/etc/fluentd/fluent.conf new file mode 100644 index 0000000..b70d7c9 --- /dev/null +++ b/docker/etc/fluentd/fluent.conf @@ -0,0 +1,24 @@ +# fluentd/conf/fluent.conf + + @type forward + port 24224 + bind 0.0.0.0 + + + @type copy + + @type elasticsearch + host elasticsearch + port 9200 + logstash_format true + logstash_prefix fluentd + logstash_dateformat %Y%m%d + include_tag_key true + type_name access_log + tag_key @log_name + flush_interval 1s + + + @type stdout + + diff --git a/docker/fluentd/Dockerfile b/docker/fluentd/Dockerfile new file mode 100644 index 0000000..f5ec20c --- /dev/null +++ b/docker/fluentd/Dockerfile @@ -0,0 +1,21 @@ +# fluentd/Dockerfile +FROM fluent/fluentd:v1.12-debian-1 + +# Use root account to use apt +USER root + +# below RUN includes plugin as examples elasticsearch is not required +# you may customize including plugins as you wish +RUN buildDeps="sudo make gcc g++ libc-dev" \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && sudo gem install fluent-plugin-elasticsearch \ + && sudo gem sources --clear-all \ + && SUDO_FORCE_REMOVE=yes \ + apt-get purge -y --auto-remove \ + -o APT::AutoRemove::RecommendsImportant=false \ + $buildDeps \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem + +USER fluent