Docker容器sshd日志

13
如何在带有openssh-server的Docker容器中启用ssh连接日志(/var/log/auth.log)?
我的容器中不存在/var/log/auth.log。
  • Docker版本: 9.0
  • 主机: Ubuntu 13.10
  • 容器: Ubuntu 13.10
2个回答

12

认证日志由Syslog服务管理。 这个服务本身通常由init系统(在你的情况下是Upstart)来管理(启动)。 默认情况下,容器不会运行init系统,这意味着你需要手动启动rsyslog

认证日志由 Syslog 服务管理,该服务通常由 init 系统(在您的情况下为 Upstart)启动。 默认情况下,容器不会运行 init 系统,这意味着您需要手动启动 rsyslog

# rsyslogd

之后,你会在 /var/log 中找到你通常的日志文件。

注意:启动系统与Docker容器不完全兼容。一种常见做法是使用 Supervisord 来自动启动多个服务/进程。


1
最近Docker的版本更新后,我使用许多init系统都没有遇到任何问题。 - James Mills

12
在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 ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接