Fluentd Daemonset for Kubernetes
500M+
Caution
README.md is generated from templates/README.md.erb
Dockerfile linksSee also dockerhub tags page: https://hub.docker.com/r/fluent/fluentd-kubernetes-daemonset/tags
Tip
Since v1.17.0, the container image build process has been migrated from automated builds on hub.docker.com to GitHub Actions. This is because there were limitation about the number of automated builds on hub.docker.com. Now, there is no limitation about the number of build pipelines.Note that there were some restrictions to ship daemonset images for v1.16.5 or older ones before:
papertrail,syslogimages (x86_64/arm64) won't be published anymorelogentries,loggly,logzio,s3arm64 images won't be published anymore (x86_64 only supported) If you want to use above non published images, build it by yourself. Dockerfile itself is still maintained in this repository.
Azureblob
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-azureblob-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-azureblob-1Elasticsearch8
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-elasticsearch8-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch8-1Elasticsearch7
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-elasticsearch7-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch7-1docker pull fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearchOpensearch
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-opensearch-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-opensearch-1Loggly
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-loggly-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-loggly-1Logentries
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-logentries-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logentries-1Cloudwatch
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-cloudwatch-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-cloudwatch-1S3
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-s3-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-s3-1Syslog
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-syslog-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-syslog-1Forward
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-forward-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-forward-1Gcs
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-gcs-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-gcs-1Graylog
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-graylog-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-graylog-1Papertrail
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-papertrail-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-papertrail-1Logzio
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-logzio-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logzio-1Kafka
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kafka-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka-1Kafka2
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kafka2-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka2-1Kinesis
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kinesis-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kinesis-1Datadog
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-datadog-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-datadog-1Azureblob Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-azureblob-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-azureblob-amd64-1Elasticsearch8 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-elasticsearch8-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch8-amd64-1Elasticsearch7 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-elasticsearch7-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch7-amd64-1docker pull fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch-amd64Opensearch Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-opensearch-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-opensearch-amd64-1Loggly Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-loggly-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-loggly-amd64-1Logentries Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-logentries-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logentries-amd64-1Cloudwatch Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-cloudwatch-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-cloudwatch-amd64-1S3 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-s3-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-s3-amd64-1Syslog Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-syslog-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-syslog-amd64-1Forward Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-forward-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-forward-amd64-1Gcs Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-gcs-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-gcs-amd64-1Graylog Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-graylog-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-graylog-amd64-1Papertrail Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-papertrail-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-papertrail-amd64-1Logzio Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-logzio-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logzio-amd64-1Kafka Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kafka-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka-amd64-1Kafka2 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kafka2-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka2-amd64-1Kinesis Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kinesis-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kinesis-amd64-1Datadog Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-datadog-amd64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-datadog-amd64-1Azureblob Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-azureblob-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-azureblob-arm64-1Elasticsearch8 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-elasticsearch8-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch8-arm64-1Elasticsearch7 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-elasticsearch7-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch7-arm64-1docker pull fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch-arm64Opensearch Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-opensearch-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-opensearch-arm64-1Loggly Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-loggly-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-loggly-arm64-1Logentries Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-logentries-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logentries-arm64-1Cloudwatch Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-cloudwatch-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-cloudwatch-arm64-1S3 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-s3-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-s3-arm64-1Syslog Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-syslog-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-syslog-arm64-1Forward Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-forward-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-forward-arm64-1Gcs Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-gcs-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-gcs-arm64-1Graylog Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-graylog-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-graylog-arm64-1Papertrail Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-papertrail-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-papertrail-arm64-1Logzio Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-logzio-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-logzio-arm64-1Kafka Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kafka-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka-arm64-1Kafka2 Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kafka2-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kafka2-arm64-1Kinesis Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-kinesis-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-kinesis-arm64-1Datadog Dockerfile
docker pull fluent/fluentd-kubernetes-daemonset:v1.19.0-debian-datadog-arm64-1.1docker pull fluent/fluentd-kubernetes-daemonset:v1.19-debian-datadog-arm64-1You can also use v1-debian-PLUGIN tag to refer latest v1 image, e.g. v1-debian-elasticsearch. On production, strict tag is better to avoid unexpected update.
See dockerhub's tags page for older tags.

Fluentd is an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data.
Fluentd versioning is as follows:
| Series | Description |
|---|---|
| v1.x | current stable |
Default YAML uses latest v1 images like fluent/fluentd-kubernetes-daemonset:v1-debian-kafka. If you want to avoid unexpected image update, specify exact version for image like fluent/fluentd-kubernetes-daemonset:v1.8.0-debian-kafka-1.0.
This is for v0.12 images.
In Kubernetes and default setting, fluentd needs root permission to read logs in /var/log and write pos_file to /var/log.
To avoid permission error, you need to set FLUENT_UID environment variable to 0 in your Kubernetes configuration.
These images have default configuration and support some environment variables for parameters but it sometimes doesn't fit your case. If you want to use your configuration, use ConfigMap feature.
Each image has following configurations:
tail input for log files and kubernetes_metadata filter/var/log/containers/*.log. See also "Use CRI parser for containerd/cri-o" logs sectionOverwrite conf file via ConfigMap. See also several examples:
This feature is available since v1.12.0-xxx-1.1.
By default, these images use json parser for /var/log/containers/ files because docker generates json formatted logs.
On the other hand, containerd/cri-o use different log format. To parse such logs, you need to use cri parser instead.
You can use cri parser by overwriting tail_container_parse.conf via ConfigMap.
# configuration example
<parse>
@type cri
</parse>
See also CRI parser README
You can update the default path for the container logs i.e /var/log/container/*.log and also one can add multiple path as defined in this fluentd document https://docs.fluentd.org/input/tail#path
Since v1.9.3 or later images.
You can exclude container logs from /var/log/containers/ with FLUENT_CONTAINER_TAIL_EXCLUDE_PATH.
If you have a trouble with specific log, use this envvar, e.g. ["/var/log/containers/logname-*"].
exclude_path parameter document: https://docs.fluentd.org/input/tail#exclude_pathSince v1.17.0-1.3/v1.16.5-1.3, jemalloc memory allocator is disabled by default.
This is because that combination of systemd plugin and jemalloc memory allocator causes a crash bug.
(free(): invalid pointer in typical)
If you don't use systemd plugin at all, you can enable jemalloc memory allocator explicitly via env: parameter.
env:
...
LD_PRELOAD="/usr/lib/libjemalloc.so.2"
If you don't setup systemd in the container, fluentd shows following messages by default configuration.
[warn]: #0 [in_systemd_bootkube] Systemd::JournalError: No such file or directory retrying in 1s
[warn]: #0 [in_systemd_kubelet] Systemd::JournalError: No such file or directory retrying in 1s
[warn]: #0 [in_systemd_docker] Systemd::JournalError: No such file or directory retrying in 1s
You can suppress these messages by setting disable to FLUENTD_SYSTEMD_CONF environment variable in your kubernetes configuration.
By default, latest images launch prometheus plugins to monitor fluentd.
You can disable prometheus input plugin by setting disable to FLUENTD_PROMETHEUS_CONF environment variable in your kubernetes configuration.
This is for older images. Latest elasticsearch images don't use sed.
By historical reason, elasaticsearch image executes sed command during startup phase when FLUENT_ELASTICSEARCH_USER or FLUENT_ELASTICSEARCH_PASSWORD is specified. This sometimes causes a problem with read only mount.
To avoid this problem, set "true" to FLUENT_ELASTICSEARCH_SED_DISABLE environment variable in your kubernetes configuration.
This daemonset setting mounts /var/log as service account fluentd so you need to run containers as privileged container.
Here is command example:
oc project kube-system
oc create -f https://raw.githubusercontent.com/fluent/fluentd-kubernetes-daemonset/master/fluentd-daemonset-elasticsearch-rbac.yaml
oc adm policy add-scc-to-user privileged -z fluentd
oc patch ds fluentd -p "spec:
template:
spec:
containers:
- name: fluentd
securityContext:
privileged: true"
oc delete pod -l k8s-app=fluentd-logging
This is from nekop's japanese article.
When you want to have multiple fluentd. For example push to multiple destination like: elsticsearch + S3.
You need to use FLUENT_POS_EXTRA_DIR add additional directory for pos file.
Otherwise they share same pos file. You may found some log only on one destination.
zookeeper gem doesn't work on Debian 10, so kafka image doesn't include zookeeper gem.
Maintainers don't have k8s experience on Windows. Some users create k8s daemonset on Windows:
Please check them out.
Using debian-kafka2/debian-kafka2-arm64 images are better than using debian-kafka/debian-kafka-arm64 images.
Because debian-kafka2/debian-kafka2-arm64 images use out_kafka2 plugin but debian-kafka/debian-kafka-arm64 images use deprecated out_kafka_buffered plugin.
Some images are contributed by users. If you have a problem/question for following images, ask it to contributors.
Currently, we don't accept new destination request without contribution. See https://github.com/fluent/fluentd-kubernetes-daemonset/issues/293
Kubernetes Logging with Fluentd
We can't notice comments in the DockerHub so don't use them for reporting issues or asking question.
If you have any problems with or questions about this image, please contact us through a GitHub issue.
Update templates files instead of docker-image files.
docker-image files are automatically generated from templates.
Note: This file is generated from templates/README.md.erb
Content type
Image
Digest
sha256:d937e2e06…
Size
140.3 MB
Last updated
about 1 month ago
Requires Docker Desktop 4.37.1 or later.
Pulls:
379,197
Last week