docker-logger
docker-logger is a small application collecting logs from other containers on the host that started without
the -t
option and configured with a logging driver that works with docker logs (journald and json-file).
It can forward both stdout and stderr of containers to local, rotated files and/or to remote syslog.
note: dkll inlcudes all functionality of docker-logger, but adds server and cli client
Install
Copy provided docker-compose.yml, customize if needed and run with docker-compose up -d
. By default docker-logger
will collect all logs from containers and put it to ./logs
directory.
Customization
All changes can be done via container's environment in docker-compose.yml
or with command line
Command line | Environment | Default | Description |
---|---|---|---|
--docker |
DOCKER_HOST |
unix:///var/run/docker.sock | docker host |
--syslog-host |
SYSLOG_HOST |
127.0.0.1:514 | syslog remote host (udp4) |
--files |
LOG_FILES |
No | enable logging to files |
--syslog |
LOG_SYSLOG |
No | enable logging to syslog |
--max-size |
MAX_SIZE |
10 | size of log triggering rotation (MB) |
--max-files |
MAX_FILES |
5 | number of rotated files to retain |
--mix-err |
MIX_ERR |
false | send error to std output log file |
--max-age |
MAX_AGE |
30 | maximum number of days to retain |
--exclude |
EXCLUDE |
excluded container names, comma separated | |
--include |
INCLUDE |
only included container names, comma separated | |
--include-pattern |
INCLUDE_PATTERN |
only include container names matching a regex | |
--exclude-pattern |
EXCLUDE_PATTERN |
only exclude container names matching a regex | |
TIME_ZONE |
UTC | time zone for container | |
--json , -j |
JSON |
false | output formatted as JSON |
- at least one of destinations (
files
orsyslog
) should be allowed - location of log files can be mapped to host via
volume
, ex:- ./logs:/srv/logs
(seedocker-compose.yml
) - both
--exclude
and--include
flags are optional and mutually exclusive, i.e. if--exclude
defined--include
not allowed, and vise versa. - both
--include
and--include-pattern
flags are optional and mutually exclusive, i.e. if--include
defined--include-pattern
not allowed, and vise versa.
Build from the source
- clone this repo -
git clone https://github.com/umputun/docker-logger.git
- build the logger -
cd docker-logger && docker build -t umputun/docker-logger .
- try it -
docker run -it --rm -v $(pwd)/logs:/srv/logs -v /var/run/docker.sock:/var/run/docker.sock umputun/docker-logger /srv/docker-logger --files