我已经设置了 Ubuntu 14.04 服务器(来自 Ubuntu 12.04 服务器),但今天我想查看,auth.log
但这个文件没有使用。似乎 ´syslog´ 已被删除。
Ubuntu 14.04 如何记录日志?我需要这个用于服务器。
谢谢。
答案1
14.04 使用rsyslog
。当我从 12.04 升级到 14.04 时,我必须将日志文件的所有者从/var/log
更改root
为syslog
。
(在/etc/rsyslog.conf
所有者中定义为
$FileOwner syslog
$FileGroup adm
)
您还应该查看/etc/rsyslog.d/50-default.conf
定义哪些事件记录到哪些文件的位置。还有一行/var/log/syslog
。也许它被注释掉了。
答案2
我刚刚使用官方服务器媒体执行了 Ubuntu 14.04 的全新安装。
已安装 Rsyslog,并且auth.log
具有默认配置的有效日志文件。它由文件配置/etc/rsyslog.d/50-default.conf
如果您没有 auth.log,那么我必须假设您执行了以下操作之一:
- 更改了配置
- 使用 rsyslog 以外的 syslog 守护进程
- 使用设置了不同默认值的 Ubuntu 安装程序。
如果不知道您所使用的 syslog 守护进程到底是什么,就很难判断。
如果你正在使用 rsyslog,那么请查看你的/etc/rsyslog.conf
和 中的任何文件/etc/rsyslog.d
。查看 auth,authpriv.* 消息被记录到哪里。
答案3
如果您在中发现如下最终消息/var/log/syslog
:
Dec 29 19:27:32 host rsyslogd-2039:
Could no open output pipe '/dev/xconsole':
No such file or directory [try http://www.rsyslog.com/e/2039 ]
那么这就是罪魁祸首。发生这种情况的原因是/etc/rsyslog.d/50-default.conf
Ubuntu 14.04.1 LTS 中的默认版本(或至少是早期版本并保留在升级中)希望您使用/dev/xconsole
错误监控,但这在无头服务器环境中不可用。
为了修复这个问题,请禁用中的相应部分/etc/rsyslog.d/50-default.conf
,使其看起来像这样:
# daemon.*;mail.*;\
# news.err;\
# *.=debug;*.=info;\
# *.=notice;*.=warn |/dev/xconsole
然后重新启动 rsyslog ( sudo service rsyslog restart
),日志文件现在就可以工作了。
来源:这个答案询问Ubuntu SE问题“缺少 /dev/xconsole 会导致 rsyslog 以及所有其他服务停止“。
答案4
我在安装全新的 Ubuntu 14.04 并启用fail2ban
ssh 登录时遇到了这个问题。
Ubuntu 14.04 使用rsyslog
默认用户syslog
和组adm
。但是,/var/log
目录具有权限root:root 0755
,这意味着 rsyslog 无法在目录中创建新的日志文件,例如文件/var/log/auth.log
。
有多种方法可以解决这个问题。
使/var/log/
所有用户都可写
sudo chmod 0777 /var/log
更改所有者/组/var/log
sudo chown syslog:adm /var/log
sudo chmod 0775 /var/log
触摸/var/log/auth.log
并将其所有者/组更改为syslog:adm
sudo touch /var/log/auth.log
sudo chown syslog:syslog /var/log/auth.log
更改用户/组rsyslog
运行方式(不建议)
editor /etc/rsyslog.conf
$FileOwner root
$FileGroup root