Collecting Docker Log Files with Fluentd and Logz.io
This directory contains the source files needed to make a Docker image that collects Docker container log files using Fluentd and sends them to your Logz.io account.
This image is designed to be used as a daemonset in a Kubernetes cluster.
Sign in to your logz.io account. Fluentd connection details will be available at https://app.logz.io/#/dashboard/data-sources/Fluentd
- Replace
_YOUR_ENDPOINT_URL_with your logz.io access endpoint, such as https://listener.logz.io:8071. - Replace
_YOUR_TOKEN_with your logz.io account token. - Replace
_YOUR_LOG_TYPE_with the type of logs you are shipping. We are using this as a tag to identify the k8s cluster source of the logs. - Replace
_LOG_LEVEL_with the requested fluentd log level. See the logging documentation for more details. Also uncomment this line.
The logz.io endpoint URL is ${_YOUR_ENDPOINT_URL_}?token=${_YOUR_TOKEN_}&type=${_YOUR_LOG_TYPE_}
- The host's
/var/logpath will be used for fluentd symlinks to the container log files. Needs to be writable. - The host's
$DOCKER_ROOT/containerspath ($DOCKER_ROOT=/var/lib/dockerin our case, your mileage may vary) is where the docker container log files are placed. This is where the symlinks from/var/log/containerspoint to. Needs to be readable. See caveat below, change according to your docker root path.
- Replace
_YOUR_DOCKER_IMAGE_TAG_with the docker image tag you will build from this repo.
docker build -t ${_YOUR_DOCKER_IMAGE_TAG_} .docker push ${_YOUR_DOCKER_IMAGE_TAG_}kubectl create -f daemonset.json --validate=false(disable validation overreadOnlykey in one of the volumes)
- Because of an issue with mounting symlinked directories, you may need to change the mount points in
daemonset.jsonto include your kubelet's actual docker root.
This repo is based on https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch/fluentd-es-image
It was first created by the folks of DoiT International