Вход в локальный системный журнал внутри контейнера 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, чтобы изменения вступили в силу.