Base docker image to run fluentd, with the ElasticSearch plugin.
The latest tag will use the latest version of openfirmware/fluentd and the latest version of fluentd-elasticsearch.
The 2.2.0 tag will lock fluentd td-agent to v2.2.0, and fluentd-elasticsearch to the latest version.
The 2.2.0-0.9.0 tag will lock fluentd td-agent to v2.2.0, and fluentd-elasticsearch to version 0.9.0.
As an alternative to the Docker Registry, an image can be created from my Github repository:
# docker build -t openfirmware/fluentd-elasticsearch github.com/openfirmware/docker-fluentd-elasticsearch.git
Once built, the image will be available locally as openfirmware/fluentd-elasticsearch. The command can be re-run to update the image with any changes to the Dockerfile.
Run the following command to start fluentd:
# docker run -d -p 8888:8888 -p 24224:24224 openfirmware/fluentd-elasticsearch
By default, the plugin will assume these details for ElasticSearch:
host: localhost
port: 9200
index_name: fluentd
type_name: fluentd
These are almost certainly not useful unless you are using a different base image that includes ElasticSearch. Instead, customize the settings using environment variables as explained in the following sections.
With ElasticSearch running on 192.168.1.10 and port 9500:
# docker run -d -p 8888:8888 -p 24224:24224 -e ES_HOST="192.168.1.10" -e ES_PORT="9500" openfirmware/fluentd-elasticsearch
Environment Variables you can customize:
Host IP or address for ElasticSearch. Multiple hosts are not supported in this Dockerfile currently. Defaults to $ELASTICSEARCH_PORT_9200_TCP_ADDR then localhost.
Host port for ElasticSearch. Defaults to $ELASTICSEARCH_PORT_9200_TCP_PORT then 9200.
Index name for ElasticSearch. Defaults to fluentd.
Type name for ElasticSearch. Defaults to fluentd.
Docker supports linking named containers together, allowing IPs and ports to be automatically configured from random values. Let's assume ElasticSearch is running in another docker container:
# docker run -d --name=elasticsearch dockerfile/elasticsearch
That container has the name elasticsearch and has the ports 9200 and 9300 exposed but not bound. We can link it to fluentd-elasticsearch:
# docker run -d -p 8888:8888 -p 24224:24224 --link elasticsearch:elasticsearch openfirmware/fluentd-elasticsearch
This will feed the IP and port from the elasticsearch container as default values instead of localhost and 9200.
- Original docker-fluentd repository created by jplock