出于内核日志记录的目的,为什么我在/var/log/messages
、/var/log/syslog
和之间有三个不同的、不包含的日志记录级别/var/log/kern.log
?
答案1
系统日志是一个标准的日志记录工具。它收集各种程序和服务(包括内核)的消息,并根据设置将它们存储在通常位于下的一堆日志文件中/var/log
。在某些数据中心设置中,数百每个设备都有自己的日志;系统日志在这里也派上了用场。只需设置一个专用的系统日志服务器,通过网络收集所有单个设备的日志。系统日志还可以将日志保存到数据库和其他客户端。
据我所知/etc/syslog.conf
,默认/var/log/kern.log
仅捕获任何日志级别的内核消息;即的输出dmesg
。
/var/log/messages
而是旨在存储有价值的、非调试和非关键的消息。此日志应被视为“一般系统活动”日志。
/var/log/syslog
依次记录除身份验证相关消息之外的所有内容。
syslog 管理的其他有趣的标准日志包括/var/log/auth.log
:/var/log/mail.log
2020 年更新
您可能仍会偶然发现 syslog;但是默认设置已经改变。
journald
已经在包括 Ubuntu 在内的相当大一部分系统中取代了 syslog。
这很重要,因为您不会/var/log/messages
再经常发现它。journald
不会写入纯文本日志 - 它使用自己的、压缩的和部分验证的格式。
在线搜索例如journalctl 备忘单或者干脆自己学习man 8 systemd-journald
。man 1 journalctl
Syslog 和 journald 在一定程度上是交叉兼容的;您可以在它们之间双向传输日志。但是,您无法/var/log/messages
通过 journald 获得纯文本日志;也无法journalctl -o json-pretty
通过 syslog 获得结构化 () 和经过身份验证的日志。
答案2
- syslog 包含除 auth 类型之外的所有消息。
- 消息仅包含一般的非关键消息。类别为
info
和notice
warn
/var/log/syslog
要查看完整日志/var/log/auth.log
- 据我所知
/var/log/kern.log
包含内核消息。 - 日志文件只是 /etc/syslog.conf 中的一个约定
- 阅读
syslog(3)
更多信息
查看此页面消息和系统日志之间的区别
它说/var/log/messages
⊂ /var/log/syslog