我记得当时每条日志信息都被放入了/var/log/messages
。/var/log/syslog
如果有人好奇的话,那是 2000 年。现在情况不同了。日志文件应该是有序的,但在我看来,它们只是缺少条目。在我看来,90% 的问题情况都是无声的,无法在/var/log
文件中找到任何东西。
如何/var/log/messages
恢复并使其真正冗长?
附言:举个例子。当我安装 vsftpd 并执行以下操作时:
sudo restart vsftpd
那么进入 syslog 的内容如下:
kernel: [ 7167.143648] init: vsftpd main process (5823) killed by TERM signal
这是重启 FTP 服务器的唯一效果。想想看——vsftpd 在启动时可能不输出任何横幅吗?我很难相信。
此外,日志来自核心,是 dmesg 捕获了这个问题。这太荒谬了。如果内核没有捕获 TERM 信号,那么日志中就不会有任何痕迹重新启动FTP 守护进程. 当proftpd通过 重新启动/etc/init.d/proftpd
。日志中没有任何痕迹,除了通过选项配置/var/log/proftpd/proftpd.log
的proftpd
自己的日志文件SystemLog
。
PS2:我附上了 Virtual Linux 的结果,这可能是第一个基于 Mandrake 于 2001 年(内核 2.4.3-20mdk)创建的 Live CD。重新启动 proftpd 后,结果如下(在 中/var/log/messages
):
proftpd[2699]: ProFTPD killed (signal 15)
proftpd[2699]: ProFTPD 1.2.2rc1 standalone mode SHUTDOWN
proftpd: proftpd shutdown succeeded
proftpd[2730]: ProFTPD 1.2.2rc1 (release) (built Sun Apr 8 09:53:35 CEST 2001) standalone mode STARTUP
proftpd: proftpd startup succeeded
14.04 上syslog
为空并且以下已登录proftpd.log
。
proftpd[1326] asus-1201N: ProFTPD killed (signal 15)
proftpd[1326] asus-1201N: ProFTPD 1.3.5rc3 standalone mode SHUTDOWN
proftpd[2620] asus-1201N: ProFTPD 1.3.5rc3 (devel) (built Fri Dec 20 2013 18:04:47 UTC) standalone mode STARTUP
在 VLinux 上,重新启动messages
时将登录以下内容:sshd
sshd[2821]: Received signal 15; terminating
sshd: sshd shutdown succeeded
sshd[2924]: Server listening on 0.0.0.0 port 22.
sshd[2924]: Generating 768 bit RSA key.
sshd: sshd startup succeeded
sshd[2924]: RSA key generation complete
14.04 上syslog
是空的,并且登录了以下内容auth.log
(为什么在那里?):
Nov 28 09:11:22 asus-1201N sshd[2500]: Received signal 15; terminating.
Nov 28 09:11:22 asus-1201N sshd[2634]: Server listening on 0.0.0.0 port 22.
Nov 28 09:11:22 asus-1201N sshd[2634]: Server listening on :: port 22.
因此,如果不计算第三行 IPv6,则基本上是两行。然后我引入了一个错误sshd_config
并重复了重新启动。VLinux / 消息:
sshd[2924]: Received signal 15; terminating.
sshd: sshd shutdown succeeded
sshd: sshd startup failed
在 14.04 上,这个时间auth.log
是空的,并且syslog
不是:
kernel: [ 2905.854777] init: ssh main process (2718) terminated with status 255
kernel: [ 2905.854836] init: ssh main process ended, respawning
在 VLinux 上,有关配置文件错误的详细信息打印到我发出的控制台中/etc/init.d/sshd restart
(“错误的配置选项:...”)。我想知道sshd
系统启动时是否记录该消息messages
。我的猜测是肯定的,但我无法使用 Live CD 进行测试。
重新启动 proftpd 时,如果配置有错误,则会在 VLinux 上记录完整信息,在 14.04 上,第二次完成后会将错误消息输出到终端,并且除了“SHUTDOWN”之外没有任何内容被记录proftpd.log
(syslog
为空)。
概括:
- 我无法清楚地证明
messages
有更多信息,但也许可以看出,现在盛行的是节省磁盘空间(?)并且不记录太多 - 人们必须在
auth.log
、syslog
和专用日志之间跳转才能找到一些信息,而且它大多是无意义的内容,因为显然守护进程的输出没有被转发到日志中,而是内核捕获“某些东西”或守护进程自己的工作来管理自己的日志文件 - 我很确定,如果出现一些复杂的错误,我会在中找到一些东西
messages
,而在当前版本中,syslog
会有关于结束进程的典型内核信息;我可能还会想出一个这样的测试来展示这一点 - 虽然我没有清楚地表明当前的日志记录遗漏了一些东西,但我肯定表明了日志记录
messages
的冗长程度
答案1
这绝对是一个新项目systemdexcels-您可以在一个地方获得所有日志。
我必须承认,实际记录的数量并不那令人印象深刻 - Gsxr1k 指出的原因在于vsftpd仅记录到其自己的文件中/var/log/vsftpd/
journalctl -f
告诉 systemd 持续向我显示日志,因此
sudo systemctl restart vsftpd
或者
sudo service vsftpd restart
我明白了
Nov 27 22:45:14 nb-re systemd[1]: Stopping vsftpd FTP server...
Nov 27 22:45:14 nb-re systemd[1]: Stopped vsftpd FTP server.
Nov 27 22:45:14 nb-re systemd[1]: Starting vsftpd FTP server...
Nov 27 22:45:14 nb-re systemd[1]: Started vsftpd FTP server.
答案2
记录内容和记录位置的配置文件是(至少在 Ubuntu 14.04 和 15.10 上)/etc/rsyslog.d/50-default.conf
。查看该文件,所有内容都记录到/var/log/auth.log
或/var/log/syslog
。我认为其中第二个比旧的 更冗长/var/log/messages
。
如果您想恢复旧版本/var/log/messages
,只需取消注释以下几行/etc/rsyslog.d/50-default.conf
(并可能,daemon
从第三行删除):
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages