1
0
mirror of https://github.com/phusion/baseimage-docker.git synced 2026-03-25 20:07:55 +00:00

Correct translation of syslog-ng driver system() on Docker

According to [the stock Ubuntu 16.04
config](https://github.com/hyperknot/baseimage16/blob/1.0.1/image/services/syslog-ng/syslog-ng.conf.original#L21),
the default source driver is `system()`, that is documented in [the
syslog-ng 3.5 official
documentation](https://www.balabit.com/documents/syslog-ng-ose-3.5-guides/en/syslog-ng-ose-guide-admin/html-single/index.html#configuring-source-system)
on Linux as `unix-dgram("/dev/log");` with some `/proc/kmsg`
involvement if kernel "is version 3.5 or newer".

`/proc/kmsg` causes trouble on Docker hence using syslog-ng 3.5 on
Docker `unix-dgram("/dev/log")` shall be used (not
`unix-stream("/dev/log");`).

If using syslog-ng
[3.6](https://www.balabit.com/documents/syslog-ng-ose-3.6-guides/en/syslog-ng-ose-guide-admin/html-single/index.html#configuring-source-system)
or
[newer](https://www.balabit.com/documents/syslog-ng-ose-3.9-guides/en/syslog-ng-ose-guide-admin/html-single/index.html#configuring-source-system)
on Docker, `system()` shall be able to be used.  But [Ubuntu 16.04 is
at syslog-ng 3.5](http://packages.ubuntu.com/xenial/syslog-ng-core) so
`system()` cannot be used.

See also https://github.com/phusion/baseimage-docker/issues/277
This commit is contained in:
Luca Favatella
2017-03-23 17:16:38 +00:00
parent 096c0d4d2e
commit 45facca75e

View File

@@ -18,7 +18,7 @@ options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
# Logs may come from unix stream, but not from another machine.
#
source s_src {
unix-stream("/dev/log");
unix-dgram("/dev/log");
internal();
};