KlotzAndrew / docker-collector-logs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

docker-collector-logs

docker-collector-logs is a Docker container that uses Filebeat to collect logs from other Docker containers and forward those logs to your Logz.io account.

To use this container, you'll set environment variables in your docker run command. docker-collector-logs uses those environment variables to generate a valid Filebeat configuration for the container. docker-collector-logs mounts docker.sock and the Docker logs directory to the container itself, allowing Filebeat to collect the logs and metadata.

docker-collector-logs ships logs only. If you want to ship metrics to Logz.io, see docker-collector-metrics.

Note: Upgrading to a newer version of a docker-collector-logs while it is already running will cause it to resend logs that are within the ignoreOlder timeframe. You can minimize log duplicates by setting the ignoreOlder parameter of the new docker to a lower value (for example, 20m.

docker-collector-logs setup

1. Pull the Docker image

Download the logzio/docker-collector-logs image:

docker pull logzio/docker-collector-logs

2. Run the container

For a complete list of options, see the parameters below the code block.👇

docker run --name docker-collector-logs \
--env LOGZIO_TOKEN="<ACCOUNT-TOKEN>" \
--env LOGZIO_URL="<LISTENER-URL>:5015" \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /var/lib/docker/containers:/var/lib/docker/containers \
logzio/docker-collector-logs

Parameters

Parameter Description
LOGZIO_TOKEN Required. Your Logz.io account token. Replace <ACCOUNT-TOKEN> with the token of the account you want to ship to.
LOGZIO_URL Required. Logz.io listener URL to ship the logs to. This URL changes depending on the region your account is hosted in. For example, accounts in the US region ship to listener.logz.io, and accounts in the EU region ship to listener-eu.logz.io.
For more information, see Account region on the Logz.io Docs.
LOGZIO_TYPE Default: Docker image name
The log type you'll use with this Docker. This is shown in your logs under the type field in Kibana.
Logz.io applies parsing based on type.
LOGZIO_CODEC Default: plain
Set to json if shipping JSON logs. Otherwise, set to plain.
matchContainerName Comma-separated list of containers you want to collect the logs from. If a container's name partially matches a name on the list, that container's logs are shipped. Otherwise, its logs are ignored.
Note: Can't be used with skipContainerName
skipContainerName Comma-separated list of containers you want to ignore. If a container's name partially matches a name on the list, that container's logs are ignored. Otherwise, its logs are shipped.
Note: Can't be used with matchContainerName
additionalFields Include additional fields with every message sent, formatted as "fieldName1=fieldValue1;fieldName2=fieldValue2".
To use an environment variable, format as "fieldName1=fieldValue1;fieldName2=$ENV_VAR_NAME". In that case, the environment variable should be the only value in the field. In case the environment variable can't be resolved, the field will be omitted.
excludeLines Comma-separated list of regular expressions to match the lines that you want Filebeat to exclude.
Note: Does not behave well with regular expressions containing commas ,
includeLines Comma-separated list of regular expressions to match the lines that you want Filebeat to include.
Note: Does not behave well with regular expressions containing commas ,
ignoreOlder Default 3h
Logs older than this will be ignored

Note: By default, logs from docker-collector-logs and docker-collector-metrics containers are ignored.

3. Check Logz.io for your logs

Spin up your Docker containers if you haven’t done so already. Give your logs a few minutes to get from your system to ours, and then open Kibana.

Change log

  • 0.0.6: Updated new public SSL certificate in Docker image & Filebeat configuration.
  • 0.0.4: Added options to include or exclude lines
  • 0.0.3: Support additional fields
  • 0.0.2: Add an option to configure logzio_codec and logzio_type

About

License:Apache License 2.0


Languages

Language:Python 86.1%Language:Dockerfile 13.9%