В настоящее время я настроил logging_driver докера deamon для записи в journald, чтобы анализировать их с помощью fluentd из модуля kubernetes. На стороне узла у меня запущен rsyslog со следующей конфигурацией по умолчанию:
# Default rules for rsyslog.
#
# For more information see rsyslog.conf(5) and /etc/rsyslog.conf
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
#user.* -/var/log/user.log
#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info -/var/log/mail.info
#mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
#
# Logging for INN news system.
#
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice
#
# Some "catch-all" log files.
#
#*.=debug;\
# auth,authpriv.none;\
# news.none;mail.none -/var/log/debug
#*.=info;*.=notice;*.=warn;\
# auth,authpriv.none;\
# cron,daemon.none;\
# mail,news.none -/var/log/messages
#
# Emergencies are sent to everybody logged in.
#
*.emerg :omusrmsg:*
#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8
# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
# you must invoke `xconsole' with the `-file' option:
#
# $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
# busy site..
#
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
Что происходит, так это то, что все журналы, которые идут в журнал, также помещаются в syslog и kern.log. Из-за большого количества контейнеров, работающих внутри узлов kubernetes и плоскости управления, я хотел бы свести к минимуму экспоненциальное ведение журнала в нескольких местах, помимо того факта, что их занесение в журнал уже сохранено в системе ведения журнала EFK. Кто-нибудь сталкивается с такой же проблемой? Как я могу этого избежать?
я передаю флаги в загрузочную оболочку, используя OPTIONS: OPTIONS = " -H unix:///var/run/docker.sock --ip-forward=true --iptables=false --ip-masq=false --log-driver journald"
Не могли бы вы попробовать изменить настройки в /etc/docker/daemon.json как в этой инструкции: docs.docker.com/config/containers/logging/json-file
меняя драйвер журнала на json-файл, проблема больше не существует. Это не совсем правильное решение, но в конечном итоге это обходной путь, позволяющий избежать большого количества дублированного пространства. Большое спасибо @ArtemGolenyaev





По умолчанию journald пересылает журналы в системный журнал.
Вы можете отключить его, отредактировав /etc/systemd/journald.conf и установив:
ForwardToSyslog=no
Затем перезапустите службу:
systemctl restart systemd-journald
Не могли бы вы поделиться конфигурацией своего демона Docker?