Docker Image

This article explains how to use Fluentd's official Docker image, maintained by Treasure Data, Inc.

Step 0: Install Docker

Please download and install Docker from here.

Step 1: Pull Fluentd's Docker image

Then, please download Fluentd v0.12's image by docker pull command.

$ docker pull fluent/fluentd:v0.12-debian

Debian and Alpine Linux version is available for Fluentd image. Debian version is recommended officially since it has jemalloc support, however Alpine image is smaller.

Step 2: Launch Fluentd Container

To make the test simple, create the example config below at /tmp/fluentd.conf. This example accepts records from http, and output to stdout.

# /tmp/fluentd.conf
<source>
  @type http
  port 9880
  bind 0.0.0.0
</source>
<match **>
  @type stdout
</match>

Finally, you can run Fluentd with docker run command.

$ docker run -d \
  -p 9880:9880 -v /tmp:/fluentd/etc -e FLUENTD_CONF=fluentd.conf \
  fluent/fluentd
2017-01-30 11:52:23 +0000 [info]: reading config file path="/fluentd/etc/fluentd.conf"
2017-01-30 11:52:23 +0000 [info]: starting fluentd-0.12.31
2017-01-30 11:52:23 +0000 [info]: gem 'fluentd' version '0.12.31'
2017-01-30 11:52:23 +0000 [info]: adding match pattern="**" type="stdout"
2017-01-30 11:52:23 +0000 [info]: adding source type="http"
2017-01-30 11:52:23 +0000 [info]: using configuration file: <ROOT>
  <source>
    @type http
    port 9880
    bind 0.0.0.0
  </source>
  <match **>
    @type stdout
  </match>
</ROOT>

Step3: Post Sample Logs via HTTP

Let's post sample logs via HTTP and confirm it's working. curl command is always your friend.

$ curl -X POST -d 'json={"json":"message"}' http://localhost:9880/sample.test

Use docker ps command to retrieve container ID, and use docker logs command to check the specific container's log.

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                         NAMES
b495e527850c        fluent/fluentd      "/bin/sh -c 'exec ..."   2 hours ago         Up 2 hours          5140/tcp, 24224/tcp, 0.0.0.0:9880->9880/tcp   awesome_mcnulty
$ docker logs b495e527850c | tail -n 1
2017-01-30 14:04:37 +0000 sample.test: {"json":"message"}

Next Steps

Now you know how to use Fluentd via Docker. Here're a couple of Docker related documentations for Fluentd.

Also, please see the following tutorials to learn how to collect your data from various data sources.

If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is a open source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.

Last updated