【发布时间】:2014-04-26 21:18:09
【问题描述】:
如何使用 openssh-server 在 Docker 容器中启用 ssh 连接日志 (/var/log/auth.log)?
我的容器中不存在 /var/log/auth.log。
- Docker 版本:9.0
- 主机:Ubuntu 13.10
- 容器:Ubuntu 13.10
【问题讨论】:
如何使用 openssh-server 在 Docker 容器中启用 ssh 连接日志 (/var/log/auth.log)?
我的容器中不存在 /var/log/auth.log。
【问题讨论】:
在docker容器中安装rsyslog包:
$ apt-get install rsyslog
然后启动守护进程:
$ service rsyslog start
似乎可以忽略下面这样的消息,sshd 无论如何都会登录到/var/log/auth.log。
* Starting enhanced syslogd rsyslogd
rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
rsyslogd: activation of module imklog failed [v8.32.0 try http://www.rsyslog.com/e/2145 ]
【讨论】:
身份验证日志由 Syslog 服务管理。
该服务本身传统上由 init 系统(在您的情况下为 Upstart)管理(启动)。
默认情况下,容器不运行初始化系统,这意味着您必须手动启动rsyslog:
# rsyslogd
之后,您会在 /var/log 中找到常用的日志文件。
注意:init 系统与 Docker 容器不完全兼容。一种常见的做法是使用Supervisord 自动启动多个服务/进程。
【讨论】: