Вход в локальный системный журнал внутри контейнера centos7

Я хотел бы, чтобы мой контейнер centos7 регистрировал сообщения в /var/log/messages

[root@gen-r-vrt-057-009 ~]# docker exec -it rsyslog_base_centos7 "/bin/bash"
[root@gen-r-vrt-057-009 /]# logger "lior"
[root@gen-r-vrt-057-009 /]# cat /var/log/messages
[root@gen-r-vrt-057-009 /]#

Я установил rsyslog, попытался запустить контейнер несколькими способами:

docker run -dit --name rsyslog_base_centos7 --network host  --privileged rsyslog/rsyslog_base_centos7:latest /usr/sbin/init
docker run -dit --name rsyslog_base_centos7  --log-driver=syslog  --network host  --privileged rsyslog/rsyslog_base_centos7:latest /usr/sbin/init
docker run -dit --name rsyslog_base_centos7  --log-driver=syslog  --network host -v /dev/log:/dev/log --privileged rsyslog/rsyslog_base_centos7:latest /usr/sbin/init

Но, похоже, ничего не помогает.

Версия контейнера и докера:

 [root@gen-r-vrt-057-009 /]# cat /etc/redhat-release
 CentOS Linux release 7.4.1708 (Core)
 [root@gen-r-vrt-057-009 /]# exit
 [root@gen-r-vrt-057-009 ~]# docker -v
 Docker version 17.03.2-ce, build f5ec1e2

Есть идеи?

Спасибо

1 ответ

Если я вас правильно понимаю, вы хотите запустить rsyslog внутри контейнера, но хотите создать данные журнала rsyslog с хост-машины. По умолчанию это невозможно из-за изоляции.

Это интересный вариант использования, и нам, вероятно, следует добавить трекер проблем по адресу https://github.com/rsyslog/rsyslog-docker.

Вероятно, вы можете достичь своей цели, подключив / dev / log в контейнер, но в зависимости от хост-ОС, которая также требует некоторой дополнительной работы.

Rsyslog / rsyslog_base_centos7 разработан с целью предоставления базового контейнера, который вы можете использовать, чтобы приложения внутри контейнера использовали протоколирование rsyslog.

Пожалуйста, взгляните также на этот разговор в Твиттере: https://twitter.com/rgerhards/status/978183898776686592 - обновления документов будут доступны после того, как мы проведем настоящую процедуру.

Примечание: этот ответ был полностью переписан, так как я изначально полностью упустил суть.

Умные люди из rsyslog собрали следующий образ Docker:https://hub.docker.com/r/rsyslog/rsyslog_base_centos7 Он позволяет вам использовать:

c) хотите запустить клиентский компьютер, на котором rsyslog обрабатывает сообщения журнала v (конфигурация CentOS 7 по умолчанию НЕ работает внутри контейнера, но этот контейнер имеет исправленную конфигурацию!)

Вот URL-адрес патча, который вы можете добавить в конфигурацию докера CentOS7, чтобы он заработал:https://gist.github.com/oleksandriegorov/2718a7e35b8d17ada934b651d627ab97

Конечно, перезапустите rsyslogd, чтобы изменения вступили в силу.

Другие вопросы по тегам